Using Reduce to Count the Array in Javascript

  • 时间:2020-09-24 11:54:15
  • 分类:网络文摘
  • 阅读:81 次
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) —

推荐阅读:
7 ABC’s for Turning Words into Money with Your Blog  Here’s What You Don’t Know About The Oxford Comma  Euro 2016: Underway And Plenty Has Changed  A Look Behind the Curtain of the Fashion Blogging World  How To Bring Your Old Blog Posts Back From The Dead  Five Essential Photography Tips for Bloggers  Desired Domain Name Taken? Here’s What To Do Next  Sex Bloggers Shocked By Tumblr’s Smut Smackdown  Can You Recover From A Facebook Rant Gone Viral?  Blogging On A Schedule: Why Providing Consistent Content Matters 
评论列表
添加评论