资讯专栏INFORMATION COLUMN

lodash速览:数组方法(一)

UCloud / 1450人阅读

摘要:将一个数组按照一定的长度分割为个数组。接收一个过滤参数,将不合格的数组项删除。将数组降维进行拉伸。返回数组的第一项。获取数组除最后一项的所有值,相当于删除最后一项。数组从项到项切割成一个新数组。取出数组的第项。删除数组中符合条件的项。

1、_.chunk(array, [size]):将一个数组按照一定的长度分割为N个数组。

_.chunk(["a", "b", "c", "d"], 2);        // => [["a", "b"], ["c", "d"]]

2、_.compact(array):过滤数组中布尔值为false的值,如false, null, 0, "", undefined, and NaN。

_.compact([0, 1, false, 2, "", 3]);        // => [1, 2, 3]

3、_.concat(array, [values]):数组连接,返回新数组。values里的数组将被降维拉伸。

var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);        // => [1, 2, 3, [4]]

4、_.difference(array, [values]):将数组里值不相同的项找到并组成一个新的数组。

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

相似方法:
_.differenceBy(array, [values], [iteratee=_.identity]):跟difference相似,但可以接收一个迭代函数。
_.differenceWith(array, [values], [comparator]):跟difference相似,但可以接收一个比较函数。

5、_.drop(array, [n=1]):删除数组的前N项。

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

相似方法:
_.dropRight(array, [n=1]):删除数组的后N项。
_.dropRightWhile(array, [predicate=_.identity]):接收一个过滤参数,将不合格的数组项删除。
_.dropWhile(array, [predicate=_.identity]):用法同上,一个从尾部开始比较,一个从头部开始比较。

6、_.fill(array, value, [start=0], [end=array.length]):填充数组,将数组的第start项到第end项填充为value。

_.fill([4, 6, 8, 10], "*", 1, 3);        // => [4, "*", "*", 10]

7、_.findIndex(array, [predicate=_.identity], [fromIndex=0]):从fromIndex开始查找数组中符合筛选条件的值的下标。

var users = [
  { "user": "barney",  "active": false },
  { "user": "fred",    "active": false },
  { "user": "pebbles", "active": true }
];
_.findIndex(users, function(o) { return o.user == "barney"; });        // => 0

相似方法:
_.findLastIndex(array, [predicate=_.identity], [fromIndex=array.length-1]):从尾部开始查找。

8、_.flatten(array):将数组降一个维度进行拉伸。

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

相似方法:
_.flattenDeep(array):将数组完全拉伸。
_.flattenDepth(array, [depth=1]):将数组降n维进行拉伸。

9、_.fromPairs(pairs):将数组转为key-value的对象。

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

互补方法:
_.toPairs(object):将对象转为一个key-value的数组。

10、_.head(array):返回数组的第一项。
_.last(array):返回数组的最后一项。

11、_.indexOf(array, value, [fromIndex=0]):查找某个值在数组的下标。

_.**lastIndexOf**(array, value, [fromIndex=array.length-1]):从后往前查找。

12、_.initial(array):获取数组除最后一项的所有值,相当于删除最后一项。

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

13、_.intersection([arrays]):找出相同的数组项。将数组里值相同的项找到并组成一个新的数组。

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

相似方法:
_.intersectionBy([arrays], [iteratee=_.identity]):略。
_.intersectionWith([arrays], [comparator]):略。
互补方法:
_.difference(array, [values]):见上面第4条。
_.differenceBy(array, [values], [iteratee=_.identity]):见上面第4条。
_.differenceWith(array, [values], [comparator]):见上面第4条。

14、_.join(array, [separator=","]):数组拼接成字符串。类原生.join方法。

_.**reverse**(array):翻转数组,类似原生。
_.**slice**(array, [start=0], [end=array.length]):数组从start项到end项切割成一个新数组。类似原生。

15、_.nth(array, [n=0]):取出数组的第n项。类似原生array[n]。

16、_.pull(array, [values]):从一个数组中删除某些value。

var array = ["a", "b", "c", "a", "b", "c"];
_.pull(array, "a", "c");
console.log(array);        // => ["b", "b"]

相似方法:
_.pullAll(array, values):参数可以接收一个数组。
_.pullAllBy(array, values, [iteratee=_.identity]):参数可以接收过滤函数。
_.pullAllWith(array, values, [comparator]):略。
_.pullAt(array, [indexes]):删除数组的下标对应的值。

17、_.remove(array, [predicate=_.identity]):删除数组中符合条件的项。

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

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

相关文章

  • lodash速览:集合方法

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

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

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

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

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

    Simon 评论0 收藏0
  • 【3分钟速览】前端广播式通信:Broadcast Channel

    摘要:是什么在前端,我们经常会用来实现页面间的通信,但这种方式更像是点对点的通信。而有时我们希望取消当前页面的广播监听一种方式是取消或者修改相应的事件监听另一种简单的方式就是使用实例为我们提供的方法。 Broadcast Channel 是什么? 在前端,我们经常会用postMessage来实现页面间的通信,但这种方式更像是点对点的通信。对于一些需要广播(让所有页面知道)的消息,用postM...

    Bmob 评论0 收藏0

发表评论

0条评论

UCloud

|高级讲师

TA的文章

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