资讯专栏INFORMATION COLUMN

lodash速览:数组方法(二)

yiliang / 491人阅读

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

1、_.sortedIndex(array, value):把value插入数组时,返回其应该插入的位置。二进制比较法,并不会改版原数组。从左向右进行比较。

_.sortedIndex([1,2,3,5], 4);     // => 3

相似方法:
_.sortedIndexBy(array, value, [iteratee=_.identity]):自定义排序函数。
_.sortedLastIndexBy(array, value, [iteratee=_.identity]):略。
_.sortedIndexOf(array, value):跟 _.indexOf() 类似,但它对有序数组进行二叉树查询。
_.sortedLastIndexOf(array, value):略。
_.sortedLastIndex(array, value):略。

2、_.sortedUniq(array):照出数组中只出现1次的项。

_.sortedUniq([1, 1, 2]);        // => [1, 2]

相似方法:
_.sortedUniqBy(array, [iteratee]):指定迭代方法。

3、_.tail(array):返回不包含首项的剩余项。

_.tail([1, 2, 3]);        // => [2, 3]

4、_.take(array, [n=1]):获取数组的前几项。

_.take(["a", "b", "c"], 2);    //["a","b"]

相似方法:
_.takeWhile(array, [predicate=_.identity]):自定义迭代器。
_.takeRight(array, [n=1]):从右往左进行获取。
_.takeRightWhile(array, [predicate=_.identity]):略。

5、_.union([arrays]):合并数组并去重。

_.union([3,1,4], [1, 2]);        // [3, 1, 4, 2]

相似方法:
_.unionBy([arrays], [iteratee=_.identity]):自定义迭代器进行比较。
_.unionWith([arrays], [comparator]):略。

6、_.uniq(array):数组去重。

_.uniq([2, 1, 2]);    // => [2, 1]

相似方法:
_.uniqBy(array, [iteratee=_.identity]):自定义迭代器比较。
_.uniqWith(array, [comparator]):略。

7、_.zip([arrays]):打包多个数组的对应项分别形成新数组。

_.zip(["a", "b","c"], [1, 2], [true, false]);    
//[["a", 1, true],["b", 2, false],["c", undefined, undefined]]

相似方法:
_.zipObject([props=[]], [values=[]]):将数组打包成key-value对象。

_.zipObject(["a", "b"], [1, 2]);        // => { "a": 1, "b": 2 }

_.zipObjectDeep([props=[]], [values=[]]):深打包。

_.zipObjectDeep(["a.b[0].c", "a.b[1].d"], [1, 2]);
// => { "a": { "b": [{ "c": 1 }, { "d": 2 }] } }

_.zipWith([arrays], [iteratee=_.identity]):自定义迭代器定义打包规则。

_.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {
  return a + b + c;
});
// => [111, 222]

_.unzip(array):_zip()的互补方法。
_.unzipWith(array, [iteratee=_.identity]):自定义解压的迭代方法。

8、_.without(array, [values]):找出不包含的数组项。

_.without([2, 1, 2, 3], 1, 2);        // => [3]

9、_.xor([arrays]):两个数组的抑或操作。找出数组中交集以外的数组项。

_.xor([2, 1], [2, 3]);    // => [1, 3]

相似方法:
_.xorBy([arrays], [iteratee=_.identity]):自定义迭代器比较规则。
_.xorWith([arrays], [comparator]):略。

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

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

相关文章

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

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

    mj 评论0 收藏0
  • lodash速览数组方法(一)

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

    UCloud 评论0 收藏0
  • lodash源码分析之数组的差集

    摘要:依赖源码分析之缓存使用方式的进一步封装源码分析之源码分析之源码分析之的实现源码分析之源码分析的调用如果有传递,则先调用,使用生成要比较数组的映射数组。循环完毕,没有在第二个数组中发现相同的项时,将该项存入数组中。 外部世界那些破旧与贫困的样子,可以使我内心世界得到平衡。——卡尔维诺《烟云》 本文为读 lodash 源码的第十七篇,后续文章会更新到这个仓库中,欢迎 star:pocke...

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

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

    Simon 评论0 收藏0

发表评论

0条评论

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