资讯专栏INFORMATION COLUMN

lodash速览:集合方法(一)

mj / 3213人阅读

摘要:按照一定规则统计数量。类似方法从右往左遍历。如果集合的每一项都符合条件才返回。筛选符合条件的项,返回一个数组,类似原生的方法。从第位查找分别对集合的每一项调用指定方法,感觉跟的作用差不多,迭代器调用方式略有不同。

集合指(Array|Object)。

1、_.countBy(collection, [iteratee=_.identity]):按照一定规则统计数量。返回一个对象,key为迭代器运算的结果,value为匹配该结果的数量。

_.countBy(["one", "two", "three"], "length");    // => { "3": 2, "5": 1 }
_.countBy([6.1, 4.2, 6.3], Math.floor);         // => { "4": 1, "6": 2 }

2、_.groupBy(collection, [iteratee=_.identity]):按照一定规则进行分组,用法雷同_.countBy()。返回一个对象,key为迭代器运算的结果,value为包含所有匹配项的数组。

_.groupBy(["one", "two", "three"], "length");  // => { "3": ["one", "two"], "5": ["three"] }
_.groupBy([6.1, 4.2, 6.3], Math.floor);        // => { "4": [4.2], "6": [6.1, 6.3] }

3、_.forEach(collection, [iteratee=_.identity]):简写为_.each(),类似原生Array的forEach方法。
类似方法:
_.forEachRight(collection, [iteratee=_.identity]):从右往左遍历。

4、_.every(collection, [predicate=_.identity]):返回一个布尔值。如果集合的每一项都符合条件才返回true。类似原生Array的every方法。

var users = [
  { "user": "barney", "age": 36, "active": false },
  { "user": "fred",   "age": 40, "active": false }
];
_.every(users, ["active", false]);    // => true
_.every(users, "active");        // => false

5、_.filter(collection, [predicate=_.identity]):筛选符合条件的项,返回一个数组,类似原生Array的filter方法。

_.filter([1,2,3,4,5,6], function(o) { return o>3; });        // => [4, 5, 6]

6、_.find(collection, [predicate=_.identity], [fromIndex=0]):照出符合条件的项,返回最先匹配的项或undefined。类似原生的Array的find方法。

相似方法:
_.findLast(collection, [predicate=_.identity], [fromIndex=collection.length-1]):从后往前匹配。

7、_.flatMap(collection, [iteratee=_.identity]):按照规则扩充数组,类似原生Array的flatMap方法。

_.flatMap([1, 2], function (n) { return [n, n]; });        // => [1, 1, 2, 2]

类似方法:
_.flatMapDeep(collection, [iteratee=_.identity]):最后返回一维数组。
_.flatMapDepth(collection, [iteratee=_.identity], [depth=1]):知道返回数组的维度。

8、_.includes(collection, value, [fromIndex=0]):从集合的fromIndex开始查找,如果集合里包含value返回true,否则返回false。类似原生Array的includes方法。

_.includes([1, 2, 3], 1, 2);        // => false  从第2位查找1

9、_.invokeMap(collection, path, [args]):分别对集合的每一项调用指定方法,感觉跟_.map()的作用差不多,迭代器调用方式略有不同。

_.invokeMap([[5, 1, 7], [3, 2, 1]], "sort");        // => [[1, 5, 7], [1, 2, 3]]
_.invokeMap([123, 456], String.prototype.split, "");    // => [["1", "2", "3"], ["4", "5", "6"]]

类似方法:
_.map(collection, [iteratee=_.identity]):类似原生Array的map方法。

延伸:
lodash里很多方法都可以接收迭代器函数,像 _.every, _.filter, _.map, _.mapValues, _.reject, and _.some等。

10、_.keyBy(collection, [iteratee=_.identity]):按照一定规则进行分组,用法雷同_.groupBy()。返回一个对象,key为迭代器运算的结果,value为匹配迭代方法的一项,如果多个项都匹配,value则取最后一个匹配上的项。

var array = [
  { "dir": "left", "code": 97 },
  { "dir": "left1", "code": 97 },
  { "dir": "right", "code": 100 }
];
_.keyBy(array, function(o) {
  return String.fromCharCode(o.code);
});
// { 
//    a : {dir: "left1", code: 97},
//    d : {dir: "right", code: 100}
//  }

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

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

相关文章

  • lodash速览:数组方法

    摘要:将一个数组按照一定的长度分割为个数组。接收一个过滤参数,将不合格的数组项删除。将数组降维进行拉伸。返回数组的第一项。获取数组除最后一项的所有值,相当于删除最后一项。数组从项到项切割成一个新数组。取出数组的第项。删除数组中符合条件的项。 1、_.chunk(array, [size]):将一个数组按照一定的长度分割为N个数组。 _.chunk([a, b, c, d], 2); ...

    UCloud 评论0 收藏0
  • lodash速览:数组方法(二)

    摘要:把插入数组时,返回其应该插入的位置。二进制比较法,并不会改版原数组。跟类似,但它对有序数组进行二叉树查询。照出数组中只出现次的项。获取数组的前几项。合并数组并去重。打包多个数组的对应项分别形成新数组。找出不包含的数组项。两个数组的抑或操作。 1、_.sortedIndex(array, value):把value插入数组时,返回其应该插入的位置。二进制比较法,并不会改版原数组。从左向右...

    yiliang 评论0 收藏0
  • 大型项目源码集合「GitHub 热点速览 v.21.39」

    摘要:作者小鱼干代码,尤其是优雅规范的代码,一直都是学习编程技巧的捷径。地址实时高清抠图本周增长数论文的官方库,由字节跳动开源。和之前的送书活动类似,留言点赞的小伙伴棒,小鱼干会努力去找的 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;c...

    曹金海 评论0 收藏0
  • 每个男孩的机械梦「GitHub 热点速览 v.21.41」

    摘要:以下内容摘录自微博的及热帖简称热帖,选项标准新发布实用有趣,根据项目时间分类,发布时间不超过的项目会标注,无该标志则说明项目超过半月。特性可监控记录的正常运行时间。服务器打包为一组微服务,用户可使用命令轻松使用。 作者:HelloGitHub-小鱼干 机械臂可能在医疗剧中看过,可以用来...

    laznrbfe 评论0 收藏0
  • Python语法速览与机器学习开发环境搭建

    摘要:语法速览与机器学习开发环境搭建从属于笔者的程序猿的数据科学与机器学习实战手册,如果希望了解更多关于数据科学与机器学习知识体系结构,推荐阅读我的技术体系结构图面向程序猿的数据科学与机器学习知识体系及资料合集。 Python语法速览与机器学习开发环境搭建从属于笔者的程序猿的数据科学与机器学习实战手册,如果希望了解更多关于数据科学与机器学习知识体系结构,推荐阅读2016:我的技术体系结构图:...

    Simon 评论0 收藏0

发表评论

0条评论

mj

|高级讲师

TA的文章

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