安装引入
- npm i --save lodash
- 使用页面
1、全部引入 import _ from ‘lodash’
2、按需引入 import x from ‘lodash/x’
一、不改变原数组,返回一个新数组
1、_.chunk(array, [size=1])
- array (Array): 需要处理的数组
[size=1] (number): 每个数组区块的长度
将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]
2、_.compact(array)
- array (Array): 待处理的数组
创建一个新数组,包含原数组中所有的非假值元素。例如false, null,0, “”, undefined, 和 NaN 都是被认为是“假值”。
_.compact([0, 1, false, 2, '', 3]);
// => [1, 2, 3]
3、_.concat(array, [values])
- array (Array): 被连接的数组。
[values] (…*): 连接的值。
创建一个新数组,将array与任何数组 或 值连接在一起。
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);
// => [1, 2, 3, [4]]
console.log(array);
// => [1]
4、_.fromPairs(pairs)
返回一个由键值对pairs构成的对象。
_.fromPairs([['fred', 30], ['barney', 40]]);
// => { 'fred': 30, 'barney': 40 }
5、_.zipObject([props=[]], [values=[]])
- [props=[]] (Array): The property identifiers.
[values=[]] (Array): The property values.
这个方法类似_.fromPairs,除了它接受2个数组,第一个数组中的值作为属性标识符(属性名),第二个数组中的值作为相应的属性值。
_.zipObject(['a', 'b'], [1, 2]);
// => { 'a': 1, 'b': 2 }
6、_.difference(array, [values])
- array (Array): 要检查的数组。
[values] (…Array): 排除的值。
创建一个具有唯一array值的数组,每个值不包含在其他给定的数组中
_.difference([3, 2, 1], [4, 2]);
// => [3, 1]
7、_.xor([arrays])
- [arrays] (…Array): 要检查的数组。
创建一个给定数组唯一值的数组
_.xor([2, 1, 3, 1, 2])
// => [2, 1, 3]
_.xor([2, 1], [2, 3])
// => [1, 3]
8、_.intersection([arrays])
创建唯一值的数组,这个数组包含所有给定数组都包含的元素
_.intersection([2, 1], [4, 2], [1, 2]);
// => [2]
9、_.uniq(array)
创建一个去重后的array数组副本。
_.uniq([2, 1, 2]);
// => [2, 1]
10、_.without(array, [values])
- array (Array): 要检查的数组。
[values] (…*): 要剔除的值。
创建一个剔除所有给定值的新数组。
注意: 不像_.pull, 这个方法会返回一个新数组。
_.without([2, 1, 2, 3], 1, 2);
// => [3]
二、改变原数组
1、_.pull(array, [values])
- array (Array): 要修改的数组。
[values] (…*): 要删除的值。
移除数组array中所有和给定值相等的元素
var array = [1, 2, 3, 1, 2, 3];
_.pull(array, 2, 3);
console.log(array);
// => [1, 1]
2、_.pullAll(array, values)
- array (Array): 要修改的数组。
values (Array): 要移除值的数组。
这个方法类似_.pull,区别是这个方法接收一个要移除值的数组
var array = [1, 2, 3, 1, 2, 3];
_.pullAll(array, [2, 3]);
console.log(array);
// => [1, 1]
3、_.pullAt(array, [indexes])
- array (Array): 要修改的数组。
[indexes] (…(number|number[])): 要移除元素的索引。
根据索引 indexes,移除array中对应的元素,并返回被移除元素的数组。
var array = [5, 10, 15, 20];
var evens = _.pullAt(array, 1, 3);
console.log(array);
// => [5, 15]
console.log(evens);
// => [10, 20]