资讯专栏INFORMATION COLUMN

JavaScript Array 自定义 groupBy, countBy 函数

Miracle / 794人阅读

var arr = ["Car", "Car", "Truck", "Boat", "Truck"];
var hist = {};

法一:

arr.map((a) => {
    if (a in hist) {
        hist[a]++;
    } else {
        hist[a] = 1;
    }
});

法二:

hist = arr.reduce((prev, item) => {
    if (item in prev) {
        prev[item]++
    } else {
        prev[item] = 1
    }
    return prev;
}, {});

输出:

console.log(hist);
// { Car: 2, Truck: 2, Boat: 1 }

参见:javascript-group-by-array

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86988.html

相关文章

  • lodash速览:集合方法(一)

    摘要:按照一定规则统计数量。类似方法从右往左遍历。如果集合的每一项都符合条件才返回。筛选符合条件的项,返回一个数组,类似原生的方法。从第位查找分别对集合的每一项调用指定方法,感觉跟的作用差不多,迭代器调用方式略有不同。 集合指(Array|Object)。 1、_.countBy(collection, [iteratee=_.identity]):按照一定规则统计数量。返回一个对象,key...

    mj 评论0 收藏0
  • 1625行,解开 underscore.js 的面纱 - 第四章

    摘要:接收三个参数分别为回调和,其中与是可选参数。官网释义排序一个列表组成一个组,并且返回各组中的对象的数量的计数。类似,但是不是返回列表的值,而是返回在该组中值的数目。 继续前面的内容,前文我们提到了很多方法的讲解,其实到这里就已经差不多了,因为大部分代码其实都是套路,一些基础函数再灵活变化就可以组成很多实用的功能。 _.sortBy = function(obj, iteratee,...

    zhaochunqi 评论0 收藏0
  • Underscore 源码(三)随机洗牌算法

    摘要:随机洗牌算法说实话,以前理解数组的排序,都是将数组按照一定的逻辑由大到小或者由小到大排序,我自己是没有碰到过随机打乱数组排序的问题。然后里用的是所谓的洗牌算法,很高效。总结又是三个知识点,分别是随机洗牌分组和函数的实现,没什么复杂的。 这是第三篇关于 Underscore 的源码解读,最近一段时间学的东西很少,自己太忙了,一方面忙着找实习,晚上回去还要写毕业论文。毕业论文真的很忧伤,因...

    silencezwm 评论0 收藏0
  • Lodash 中文文档 (v3.10.1) - “Collection” 方法

    摘要:别名参数待搜索的集合每次迭代执行的函数绑定的返回返回匹配的元素或示例使用回调函数的简称使用回调函数的简称使用回调函数的简称该方法类似,但其从右到左迭代的所有元素。 Lodash 中文文档 (v3.10.1) - Collection 方法 Translated by PeckZegOriginal Docs: Lodash v3.10.1 Docs 求助 翻译文档的难度比想象中的要难,...

    张利勇 评论0 收藏0
  • underscore 系列之内部函数 cb 和 optimizeCb

    摘要:类似于,但更加健壮和完善。当为一个函数,正常处理。系列系列目录地址。系列预计写八篇左右,重点介绍中的代码架构链式调用内部函数模板引擎等内容,旨在帮助大家阅读源码,以及写出自己的。如果有错误或者不严谨的地方,请务必给予指正,十分感谢。 前言 仅看 cb 和 optimizeCb 两个函数的名字,你可能想不到这是用来做什么的,尽管你可能想到 cb 是 callback 的缩写。 如果直接讲...

    Zhuxy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<