Using Reduce to Count the Array in Javascript

  • 时间:2020-09-24 11:54:15
  • 分类:网络文摘
  • 阅读:115 次
JS Using Reduce to Count the Array in Javascript javascript

NodeJs / Javascript

Let’s say, we have an array in Javascript, and we want to group the elements, ount their occurences and store the final results in a key-value dictionary.

Input Array:

1
const cars = ['BMW', 'Audi', 'Audi', 'Benz', 'Benz', 'Tesla', 'BMW', 'Toyota'];
const cars = ['BMW', 'Audi', 'Audi', 'Benz', 'Benz', 'Tesla', 'BMW', 'Toyota'];

Output JSON-like key-value pairs i.e. mapping:

{ BMW: 2, Audi: 2, Benz: 2, Tesla: 1, Toyota: 1 }

We can add a functoin count by extending the Array’s prototype. We will implement it using the Array’s reduce the array into a single value. The reduce takes two parameters, the first one is the function(previousValue, currentValue, currentIndex, currentArray), and the second value is the initial value.

1
2
3
4
5
6
Array.prototype.count = function() {
    return this.reduce(function(obj, name) {
        obj[name] = obj[name] ? ++obj[name] : 1;
        return obj;
    }, {});
}
Array.prototype.count = function() {
    return this.reduce(function(obj, name) {
        obj[name] = obj[name] ? ++obj[name] : 1;
        return obj;
    }, {});
}

We pass the initial value, {} i.e. an empty JSON-object, then in the reduced-function, we will update the frequency of the current element in the dictionary and return the updated object for next iteration.

–EOF (The Ultimate Computing & Technology Blog) —

推荐阅读:
鲁仲连义不帝秦原文及翻译  触龙说赵太后原文及翻译  庄辛论幸臣原文及翻译  赵威后问齐使原文及翻译  冯谖客孟尝君原文及翻译  齐宣王见颜斶/颜斶说齐王原文及翻译  邹忌讽齐王纳谏原文及翻译  范雎说秦王原文及翻译  三个博客写作技巧坚持了10年 养活了他一家子!  百度搜索正式升级冰桶算法5.0 
评论列表
添加评论