Lodash之Array(1)

2017-05-31  本文已影响0人  windole

_.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

上一篇下一篇

猜你喜欢

热点阅读