Array Functions 所有数组函数对参数对象一样适用。
1.first _.first(array, [n]) 别名: head, take
返回array的第一个元素,设置了参数n,就返回前n个元素。
//_.first var r = _.first([5, 4, 3, 2, 1]); console.log(r); //5 var r = _.first([5,4,3,2,1],3); console.log(r); //[5,4,3]
2.initial _.initial(array, [n])
返回数组中除了最后一个元素外的其他全部元素。尤其用于参数对象。传递 n参数将从结果中排除从最后一个开始的n个元素。
//_.initial var r = _.initial([5, 4, 3, 2, 1]); console.log(r); //[5, 4, 3, 2] var r = _.initial([5, 4, 3, 2, 1], 4); console.log(r); //[5]
3.last _.last(array, [n])
返回array(数组)的最后一个元素。传递 n参数将返回数组中从最后一个元素开始的n个元素。
//_.last var r = _.last([5, 4, 3, 2, 1]); console.log(r); //1 var r = _.last([5, 4, 3, 2, 1],3); console.log(r); //[3,2,1]
4.rest _.rest(array, [index])
别名: tail, drop
返回数组中除了第一个元素外的其他全部元素。传递index 参数将返回除了第index 个元素以外剩余的所有元素。
//_.rest var r = _.rest([5, 4, 3, 2, 1]); console.log(r); //[4, 3, 2, 1] var r = _.rest([5, 4, 3, 2, 1],3); console.log(r); //[2, 1]
5.compact _.compact(array)
返回一个除去所有false值的array副本。在javascript中, false, null, 0, "", undefined 和 NaN 都是false值。
//_.compact var r = _.compact([0, 1, false, 2, '', 3]); console.log(r); //[1, 2, 3]
6.flatten _.flatten(array, [shallow])
将一个嵌套多层的数组array(数组) (嵌套可以是任何层数)转换为只有一层的数组。如果你传递shallow参数,数组将只减少一维的嵌套。
//_.flatten var r = _.flatten([1, [2], [3, [[4]]]]); console.log(r); //[1, 2, 3, 4]; var r = _.flatten([1, [2], [3, [[4]]]], true); console.log(r); //[1, 2, 3, [[4]]]; var r = _.flatten([[1,[1.1,[2.2]]], [2], [3, [[4]]]], true); console.log(r); //[1,[1.1,[2.2]],2,3,[[4]]]
7.without _.without(array, [*values])
返回一个删除所有values值的array副本。(注:使用===表达式做相等测试。)
//_.without var r = _.without([1, 2, 1, 0, 3, 1, 4], 0, 1); console.log(r); //[2, 3, 4] var r = _.without([{code:'001',name:'TEST001'},{code:'002',name:'TEST002'},{code:'003',name:'TEST003'}],{code:'002',name:'TEST002'}); console.log(r); //[{code:'001',name:'TEST001'},{code:'002',name:'TEST002'},{code:'003',name:'TEST003'}]
8.union _.union(*arrays)
返回传入的arrays(数组)并集:按顺序返回,数组的元素是唯一的,可以传入一个或多个 arrays(数组)。
//_.union var r = _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]); console.log(r); //[1, 2, 3, 101, 10]
9.intersection _.intersection(*arrays)
返回传入arrays(数组)交集。结果中的每个值是存在于传入的每个arrays(数组)里。
//_.intersection var r = _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]); console.log(r); //[1, 2]
10.difference _.difference(array, *others)
类似于without,但返回的值来自array参数数组,并且不存在于other 数组。