📅  最后修改于: 2023-12-03 15:17:26.422000             🧑  作者: Mango
Lodash 是一个非常实用的 JavaScript 工具库,提供了诸如对象操作、函数式编程、字符串操作等等众多的方法。其中集合操作也是 Lodash 库的一大特色,本文将详细介绍 Lodash 的集合操作方法。
将一个数组分成多个子数组,每个子数组的长度为指定值。
用法:
_.chunk(array, [size=1])
示例:
_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]
返回一个新数组,该数组去除了原数组中所有假值元素。
用法:
_.compact(array)
示例:
_.compact([0, 1, false, 2, '', 3]);
// => [1, 2, 3]
将若干个数组合并成一个新数组。
用法:
_.concat(array, [values])
示例:
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);
// => [1, 2, 3, [4]]
console.log(array);
// => [1]
返回一个新数组,该数组包含原数组中,不包含在其他给定数组中的所有元素。
用法:
_.difference(array, [values])
示例:
_.difference([1, 2, 3], [4, 2]);
// => [1, 3]
返回一个新数组,该数组去除了原数组中前n个元素。
用法:
_.drop(array, [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]
返回一个新数组,该数组去除了原数组中后n个元素。
用法:
_.dropRight(array, [n=1])
示例:
_.dropRight([1, 2, 3], 2);
// => [1]
_.dropRight([1, 2, 3], 5);
// => []
_.dropRight([1, 2, 3], 0);
// => [1, 2, 3]
用指定值替换原数组中指定位置的元素。
用法:
_.fill(array, value, [start=0], [end=array.length])
示例:
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, 10], '*', 1, 3);
// => [4, '*', '*', 10]
将一个多维数组拍平成一维数组。
用法:
_.flatten(array)
示例:
_.flatten([1, [2, [3, [4]], 5]]);
// => [1, 2, [3, [4]], 5]
_.flatten([1, [2, [3, [4]]]], true);
// => [1, 2, 3, [4]]
将一个多维数组递归拍平成一维数组。
用法:
_.flattenDeep(array)
示例:
_.flattenDeep([1, [2, [3, [4]], 5]]);
// => [1, 2, 3, 4, 5]
获取原数组中的第一个元素。
用法:
_.head(array)
示例:
_.head([1, 2, 3]);
// => 1
返回指定元素在数组中首次出现的索引,如果不存在则返回-1。
用法:
_.indexOf(array, value, [fromIndex=0])
示例:
_.indexOf([1, 2, 1, 2], 2);
// => 1
_.indexOf([1, 2, 1, 2], 2, 2);
// => 3
返回原数组中除了最后一个元素之外的所有元素。
用法:
_.initial(array)
示例:
_.initial([1, 2, 3]);
// => [1, 2]
返回所有数组中均存在的元素。
用法:
_.intersection([arrays])
示例:
_.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
// => [1, 2]
将原数组中的所有元素用指定分隔符拼接成一个字符串。
用法:
_.join(array, [separator=','])
示例:
_.join(['a', 'b', 'c'], '~');
// => 'a~b~c'
获取原数组中的最后一个元素。
用法:
_.last(array)
示例:
_.last([1, 2, 3]);
// => 3
从原数组中删除所有给定的值。
用法:
_.pull(array, [values])
示例:
var array = ['a', 'b', 'c', 'a', 'b', 'c'];
_.pull(array, 'a', 'c');
console.log(array);
// => ['b', 'b']
与 _.pull 的作用相同,只是传入的是一个数组。
用法:
_.pullAll(array, values)
示例:
_.pullAll(['a', 'b', 'c', 'a', 'b', 'c'], ['a', 'c']);
// => ['b', 'b']
返回一个新数组,该数组的元素反转排列。
用法:
_.reverse(array)
示例:
_.reverse([1, 2, 3]);
// => [3, 2, 1]
返回一个从原数组中取出的子数组。
用法:
_.slice(array, [start=0], [end=array.length])
示例:
_.slice([1, 2, 3], 1);
// => [2, 3]
_.slice([1, 2, 3], 1, 2);
// => [2]
_.slice([1, 2, 3], -2);
// => [2, 3]
返回一个值在数组中的排序位置。
用法:
_.sortedIndex(array, value)
示例:
_.sortedIndex([30, 50], 40);
// => 1
返回一个新数组,该数组去除了原数组中的第一个元素。
用法:
_.tail(array)
示例:
_.tail([1, 2, 3]);
// => [2, 3]
返回一个新数组,该数组从原数组的起始位置取出n个元素。
用法:
_.take(array, [n=1])
示例:
_.take([1, 2, 3]);
// => [1]
_.take([1, 2, 3], 2);
// => [1, 2]
_.take([1, 2, 3], 5);
// => [1, 2, 3]
_.take([1, 2, 3], 0);
// => []
返回一个新数组,该数组包含所有给定数组中的唯一值。
用法:
_.union([arrays])
示例:
_.union([2, 1], [4, 2], [1, 2, 3]);
// => [2, 1, 4, 3]
返回一个新数组,该数组包含原数组中的唯一值。
用法:
_.uniq(array)
示例:
_.uniq([2, 1, 2]);
// => [2, 1]
将多个数组按相应索引位置合并成一个新数组,相当于将多个数组的行转换为一列。
用法:
_.zip([arrays])
示例:
_.zip(['a', 'b'], [1, 2], [true, false]);
// => [['a', 1, true], ['b', 2, false]]
以上就是 Lodash 集合操作的全部内容,希望对你的开发有所帮助!