# 数组

返回lodash

# _.chunk(array, [size=1])

将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。
如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。

(Array): 返回一个包含拆分区块的新数组(注:相当于一个二维数组)。

_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
 
_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]
1
2
3
4
5

# _.compact(array)

创建一个新数组,包含原数组中所有的非假值元素。例如false, null,0, "", undefined, 和 NaN 都是被认为是“假值”。

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

# _.concat(array, [values])

创建一个新数组,将array与任何数组 或 值连接在一起。

(Array): 返回连接后的新数组。

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

# _.difference(array, [values])

创建一个具有唯一array值的数组,每个值不包含在其他给定的数组中。
(注:即创建一个新数组,这个数组中的值,为第一个数字(array 参数)排除了给定数组中的值。)
该方法使用SameValueZero做相等比较。
结果值的顺序是由第一个数组中的顺序确定。

注意:

不像_.pullAll,这个方法会返回一个新数组。

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

# .differenceBy(array, [values], [iteratee=.identity])

_.differenceBy([3.1, 2.2, 1.3], [4.4, 2.5], Math.floor);
// => [3.1, 1.3]
 
// The `_.property` iteratee shorthand.
_.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
// => [{ 'x': 2 }]
1
2
3
4
5
6

# _.differenceWith(array, [values], [comparator])

这个方法类似_.difference ,除了它接受一个 comparator (注:比较器),它调用比较array,values中的元素。
结果值是从第一数组中选择。comparator 调用参数有两个:(arrVal, othVal)。

var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
 
_.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);
// => [{ 'x': 2, 'y': 1 }]
1
2
3
4

# _.drop(array, [n=1])

创建一个切片数组,去除array前面的n个元素。(n默认值为1。)

_.drop([1, 2, 3]);
// => [2, 3]
 
_.drop([1, 2, 3], 2);
// => [3]
 
_.drop([1, 2, 3], 5);
// => []
 
_.drop([1, 2, 3], 0);
// => [1, 2, 3]
1
2
3
4
5
6
7
8
9
10
11

# .dropWhile(array, [predicate=.identity])

var users = [
  { 'user': 'barney',  'active': false },
  { 'user': 'fred',    'active': false },
  { 'user': 'pebbles', 'active': true }
];
 
_.dropWhile(users, function(o) { return !o.active; });
// => objects for ['pebbles']
 
// The `_.matches` iteratee shorthand.
_.dropWhile(users, { 'user': 'barney', 'active': false });
// => objects for ['fred', 'pebbles']
 
// The `_.matchesProperty` iteratee shorthand.
_.dropWhile(users, ['active', false]);
// => objects for ['pebbles']
 
// The `_.property` iteratee shorthand.
_.dropWhile(users, 'active');
// => objects for ['barney', 'fred', 'pebbles']
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# _.dropRight(array, [n=1])

创建一个切片数组,去除array尾部的n个元素。(n默认值为1。)

_.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]
1
2
3
4
5
6
7
8
9
10
11

# .dropRightWhile(array, [predicate=.identity])

创建一个切片数组,去除array中从 predicate 返回假值开始到尾部的部分。predicate 会传入3个参数: (value, index, array)。

var users = [
  { 'user': 'barney',  'active': true },
  { 'user': 'fred',    'active': false },
  { 'user': 'pebbles', 'active': false }
];
 
_.dropRightWhile(users, function(o) { return !o.active; });
// => objects for ['barney']
 
// The `_.matches` iteratee shorthand.
_.dropRightWhile(users, { 'user': 'pebbles', 'active': false });
// => objects for ['barney', 'fred']
 
// The `_.matchesProperty` iteratee shorthand.
_.dropRightWhile(users, ['active', false]);
// => objects for ['barney']
 
// The `_.property` iteratee shorthand.
_.dropRightWhile(users, 'active');
// => objects for ['barney', 'fred', 'pebbles']
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20