Lodash之Array(1)
_.chunk(array, [size=1])
将array拆分成多个size长度的块,把这些块组成一个新数组。 如果array无法被分割成全部等长的块,那么最后剩余的元素将组成一个块。
参数
array(Array): 需要被处理的数组。
[size=1](number): 每个块的长度。
返回值
(Array): 返回一个包含拆分块数组的新数组(相当于一个二维数组)。
例子
_.chunk(['a','b','c','d'],2);// => [['a', 'b'], ['c', 'd']]
_.chunk(['a','b','c','d'],3);// => [['a', 'b', 'c'], ['d']]
_.compact(array)
创建一个新数组并包含原数组中所有的非假值元素。例如false、null、0、""、undefined和NaN都是“假值”。
参数
array(Array): 数组参数.
返回值
(Array): 返回过滤假值后的数组.
例子
_.compact([0,1,false,2,'',3]);// => [1, 2, 3]
_.difference(array,[values])
创建一个新数组并排除掉原数组需要排除掉的值
参数
array(Array): 需要过滤的数组
[values](...Array): 数组需要排除掉的值
返回值
(Array): 返回过滤后的数组
例子
_.difference([1,2,3],[4,2]);// => [1, 3]
_.difference([1,'2',3],[4,2]);// => [1, "2", 3]
_.drop(array,[n=1])
将array中的前n个元素去掉,然后返回剩余的部分。
参数
array(Array): 被操作的数组。
[n=1](number): 去掉的元素个数。
返回值
(Array): 返回array的剩余部分。
例子
_.drop([1,2,3]);// => [2, 3] 默认是1开始的
_.drop([1,2,3],2);// => [3]
_.drop([1,2,3],5);// => []
_.drop([1,2,3],0);// => [1, 2, 3]
_.dropRight(array,[n=1])
将array尾部的n个元素去除,并返回剩余的部分。
参数
array(Array): 需要被处理数组。
[n=1](number): 去掉的元素个数。
返回值
(Array): 返回array的剩余部分。
例子
_.dropRight([1,2,3]);// => [1, 2]
_.dropRight([1,2,3],2);// => [1]
_.dropRight([1,2,3],5);// => []
_.dropRight([1,2,3],0);// => [1, 2, 3]
_.dropRightWhile(array,[prediccate=_.identity],[thisArg])
从尾端查询(右数)数组array,第一个不满足predicate条件的元素开始截取数组.thisArg为predicate条件执行上下文对象绑定的参数 .
参数predicate提供的是一个属性名称,就通过提供的参数使用_.property方法返回一个回调函数
如果参数thisArg提供的话,就使用_.matchesProperty方法匹配相同的属性值,相同返回true,不同返回false
如果参数predicate提供的是一个对象,就使用_.matches方法匹配相同的元素,相同返回true,不同返回false
参数
array(Array): 需要查询的数组
[predicate=_.identity](Function|Object|string): 数组迭代判断条件
[thisArg](*): 对应predicate属性的值.
返回值
(Array): 返回截取元素后的数组
例子
_.dropRightWhile([1,2,3],function(n){returnn>1;});// => [1]
var users=[{'user':'barney','active':true},{'user':'fred','active':false},{'user':'pebbles','active':false}];
// using the `_.matches` callback shorthand
_.pluck(_.dropRightWhile(users,{'user':'pebbles','active':false}),'user');// => ['barney', 'fred']
// using the `_.matchesProperty` callback shorthand
_.pluck(_.dropRightWhile(users,'active',false),'user');// => ['barney']
// using the `_.property` callback shorthand
_.pluck(_.dropRightWhile(users,'active'),'user');// => ['barney', 'fred', 'pebbles']
_.dropWhile(array,[predicate=_.identity],[thisArg]
从开头查询(左数起)数组array,第一个不满足predicate条件的元素开始截取数组.thisArg为predicate条件执行上下文对象绑定的参数 .
参数predicate提供的是一个属性名称,就通过提供的参数使用_.property方法返回一个回调函数
如果参数thisArg提供的话,就使用_.matchesProperty方法匹配相同的属性值,相同返回true,不同返回false
如果参数predicate提供的是一个对象,就使用_.matches方法匹配相同的元素,相同返回true,不同返回false
参数
array(Array): 需要查询的数组
[predicate=_.identity](Function|Object|string): 数组遍历的条件
[thisArg](*): 对应predicate属性的值.
返回值
(Array): 返回截取元素后的数组
例子
_.dropWhile([1,2,3],function(n){returnn<3;});// => [3]
var users=[{'user':'barney','active':false},{'user':'fred','active':false},{'user':'pebbles','active':true}];
// using the `_.matches` callback shorthand
_.pluck(_.dropWhile(users,{'user':'barney','active':false}),'user');// => ['fred', 'pebbles']
// using the `_.matchesProperty` callback shorthand
_.pluck(_.dropWhile(users,'active',false),'user');// => ['pebbles']
// using the `_.property` callback shorthand
_.pluck(_.dropWhile(users,'active'),'user');// => ['barney', 'fred', 'pebbles']
_.fill(array,value,[start=0],[end=arr.length])
使用value值来填充(也就是替换)array,从start位置开始, 到end位置结束(但不包含end位置)
Note:这是个改变数组的方法
参数
array(Array): 需要填充的数组.
value(*): 填充array元素的值.
[start=0](number): 起始位置(包含)
[end=array.length](number): 结束位置(不含)
返回值
(Array): 返回array.
例子
var array=[1,2,3];
_.fill(array,'a');console.log(array);// => ['a', 'a', 'a']
_.fill(Array(3),2);// => [2, 2, 2]
_.fill([4,6,8],'*',1,2);// => [4, '*', 8]
_.findIndex(array,[prodicate=_.identity],[thisArg])
该方法类似_.find,区别是该方法返回的是符合predicate条件的第一个元素的索引,而不是返回元素本身.
参数predicate提供的是一个属性名称,就通过提供的参数使用_.property方法返回一个回调函数
如果参数thisArg值提供的话,就使用_.matchesProperty方法匹配相同的属性值,相同返回true,不同返回false
如果参数predicate提供的是一个对象,就使用_.matches方法匹配相同的元素,相同返回true,不同返回false
参数
array(Array): 需要搜索的数组
[predicate=_.identity](Function|Object|string): 数组遍历满足的条件
[thisArg](*): 对应predicate属性的值.
返回值
(number): 返回符合查询条件的元素的索引值, 未找到则返回-1.
例子
var users=[{'user':'barney','active':false},{'user':'fred','active':false},{'user':'pebbles','active':true}];
_.findIndex(users,function(chr){returnchr.user=='barney';});// => 0//
using the `_.matches` callback shorthand
_.findIndex(users,{'user':'fred','active':false});// => 1
// using the `_.matchesProperty` callback shorthand
_.findIndex(users,'active',false);// => 0
// using the `_.property` callback shorthand
_.findIndex(users,'active');// => 2
_.findLastindex(array,[predicate=_.identity],[thisArg])
该方法类似_.findIndex,区别是其从右到左遍历数组.
该方法类似_.find,区别是该方法返回的是符合predicate条件的第一个元素的索引,而不是返回元素本身.
参数predicate提供的是一个属性名称,就通过提供的参数使用_.property方法返回一个回调函数
如果参数thisArg值提供的话,就使用_.matchesProperty方法匹配相同的属性值,相同返回true,不同返回false
如果参数predicate提供的是一个对象,就使用_.matches方法匹配相同的元素,相同返回true,不同返回false
参数
array(Array): 需要查询的数组
[predicate=_.identity](Function|Object|string): 遍历数组条件
[thisArg](*): Thethisbinding ofpredicate.
返回值
(number): 返回匹配数组元素的索引值, 否则返回-1.
例子
var users=[{'user':'barney','active':true},{'user':'fred','active':false},{'user':'pebbles','active':false}];
_.findLastIndex(users,function(chr){returnchr.user=='pebbles';});// => 2
// using the `_.matches` callback shorthand
_.findLastIndex(users,{'user':'barney','active':true});// => 0
// using the `_.matchesProperty` callback shorthand
_.findLastIndex(users,'active',false);// => 2
// using the `_.property` callback shorthand
_.findLastIndex(users,'active');// => 0