Lodash 速查表

tech2023-12-15  28

Array数组

_.chunk(array, [size=1]) :将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。 _.chunk(['a', 'b', 'c', 'd'], 3); // => [['a', 'b', 'c'], ['d']] _.compact(array):创建一个新数组,包含原数组中所有的非假值元素。例如false, null, 0, “”, undefined, 和 NaN 都是被认为是“假值”。 _.compact([0, 1, false, 2, '', 3]); // => [1, 2, 3] _.concat(array, [values]):创建一个新数组,将array与任何数组 或 值连接在一起。 var array = [1]; var other = _.concat(array, 2, [3], [[4]]); console.log(other); // => [1, 2, 3, [4]] console.log(array); // => [1] _.difference(array, [values]):创建一个具有唯一array值的数组,每个值不包含在其他给定的数组中。 _.difference([3, 2, 1], [4, 2]); // => [3, 1] _ .differenceWith(array, [values], [comparator]):这个方法类似_.difference ,除了它接受一个 comparator (注:比较器),它调用比较array,values中的元素。 var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); // => [{ 'x': 2, 'y': 1 }] _.drop(array, [n=1]):创建一个切片数组,去除array前面的n个元素。(n默认值为1。)_.dropRight(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] _.fill(array, value, [start=0], [end=array.length]):使用 value 值来填充(替换) array,从start位置开始, 到end位置结束(但不包含end位置)。 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] _.head(array):获取数组 array 的第一个元素。_.last(array):获取数组 array 的最后一个元素。 _.head([1, 2, 3]); // => 1 _.head([]); // => undefined _.indexOf(array, value, [fromIndex=0]):返回首次 value 在数组array中被找到的 索引值, 如果 fromIndex 为负值,将从数组array尾端索引进行匹配。

array (Array): 需要查找的数组。 value (*): 需要查找的值。 [fromIndex=0] (number):开始查询的位置。

_.indexOf([1, 2, 1, 2], 2); // => 1 // Search from the `fromIndex`. _.indexOf([1, 2, 1, 2], 2, 2); // => 3 _.initial(array):去除数组array中的最后一个元素 _.initial([1, 2, 3]); // => [1, 2] _.flatten(array):减少一级array嵌套深度,【将三维数组讲到二维数组】_.flattenDepth(array,[depth=1]):根据 depth(最多减少的嵌套层级数。) 递归减少 array 的嵌套层级_.flattenDeep(array):将数组递归至一维数组 _.flattenDeep([1, [2, [3, [4]], 5]]); // => [1, 2, 3, 4, 5] _.fromPairs(pairs):这个方法返回一个由键值对pairs构成的对象。 _.fromPairs([['fred', 30], ['barney', 40]]); // => { 'fred': 30, 'barney': 40 } _.intersection([arrays]):创建唯一值的数组,这个数组包含所有给定数组都包含的元素(给定数组的交集)_.intersectionWith([arrays], [comparator]):区别是它接受一个 comparator 调用比较arrays中的元素。结果值是从第一数组中选择 var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; _.intersectionWith(objects, others, _.isEqual); // => [{ 'x': 1, 'y': 2 }] _.join(array, [separator=’,’]):将 array 中的所有元素转换为由 separator 分隔的字符串。 _.join(['a', 'b', 'c'], '~'); // => 'a~b~c' _.nth(array, [n=0]):获取array数组的第n个元素。如果n为负数,则返回从数组结尾开始的第n个元素。 var array = ['a', 'b', 'c', 'd']; _.nth(array, 1); // => 'b' _.nth(array, -2); // => 'c'; _.pull(array, [values]):移除数组array中所有和给定值相等的元素,返回的是被移除的数组。 var array = [1, 2, 3, 1, 2, 3]; _.pull(array, 2, 3); console.log(array); // => [1, 1] _.pullAt(array, [indexes]):根据索引 indexes,移除array中对应的元素,并返回被移除元素的数组。 var array = [5, 10, 15, 20]; var evens = _.pullAt(array, 1, 3); console.log(array); // => [5, 15] _ .remove(array, [predicate=_.identity]):移除数组中predicate(断言)返回为真值的所有元素,并返回移除元素组成的数组。predicate(断言) 会传入3个参数: (value, index, array)。 var array = [1, 2, 3, 4]; var evens = _.remove(array, function(n) { return n % 2 == 0; }); console.log(array); // => [1, 3] console.log(evens); // => [2, 4] _.reverse(array):反转array,使得第一个元素变为最后一个元素,第二个元素变为倒数第二个元素,依次类推。 var array = [1, 2, 3]; _.reverse(array); // => [3, 2, 1] console.log(array); // => [3, 2, 1] _.slice(array, [start=0], [end=array.length]):裁剪数组array,从 start 位置开始到end结束,但不包括 end 本身的位置。_.sortedIndex(array, value):使用二进制的方式检索来决定 value值 应该插入到数组中 尽可能小的索引位置,以保证array的排序。_.sortedIndexBy(array, value, [iteratee=function]):除了它接受一个 iteratee (迭代函数),调用每一个数组(array)元素,返回结果和value 值比较来计算排序。_.sortedUniq(array):去重排序 ,会优化排序数组 _.sortedUniq([1, 1, 2]); // => [1, 2] _.tail(array):获取除了array数组第一个元素以外的全部元素。_.takeRight(array, [n=1]):创建一个数组切片,从array数组的最后一个元素开始提取n个元素。_.take(array, [n=1]):创建一个数组切片,从array数组的起始元素开始提取n个元素。 _.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]):创建一个按顺序排列的唯一值的数组。(注: arrays(数组)的并集,按顺序返回,返回数组的元素是唯一的) _.union([2], [1, 2]); // => [2, 1] _.uniq(array):创建一个去重后的array数组副本。只有第一次出现的元素才会被保留。_.without(array, [values]):创建一个剔除所有给定值的新数组,剔除值的时候 _.without([2, 1, 2, 3], 1, 2); // => [3] _.zip([arrays]):创建一个分组元素的数组,数组的第一个元素包含所有给定数组的第一个元素,数组的第二个元素包含所有给定数组的第二个元素,以此类推。 _.zip(['fred', 'barney'], [30, 40], [true, false]); // => [['fred', 30, true], ['barney', 40, false]] _.zipWith([arrays],function):不同之处在于它接受一个 iteratee(迭代函数),来 指定分组的值应该如何被组合。 该iteratee调用每个组的元素: (…group). _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { return a + b + c; }); // => [111, 222] _.without(array, [values]):创建一个剔除所有给定值的新数组 _.without([2, 1, 2, 3], 1, 2); // => [3] _.xor([arrays]):创建一个给定数组唯一值的数组(删除重复的元素),返回值的顺序取决于他们数组的出现顺序。 _.xor([2, 1], [2, 3]); // => [1, 3] _.xorBy([arrays],function):这个迭代器 调用每一个 arrays(数组)的每一个值,以生成比较的新值。iteratee 调用一个参数: (value)

集合

_ .countBy(collection, [iteratee=_.identity]):创建一个组成对象,key(键)是经过 iteratee(迭代函数) 执行处理collection中每个元素后返回的结果,每个key(键)对应的值是 iteratee(迭代函数)返回该key(键)的次数(注:迭代次数)。 iteratee 调用一个参数:(value)。 _.countBy([6.1, 4.2, 6.3], Math.floor); // => { '4': 1, '6': 2 } // The `_.property` iteratee shorthand. _.countBy(['one', 'two', 'three'], 'length'); // => { '3': 2, '5': 1 } _.every(collection, function):通过断言函数检查 collection(集合)中的 所有 元素是否都返回真值。一旦 predicate(断言函数) 返回假值,迭代就马上停止。predicate(断言函数)调用三个参数: (value, index|key, collection)。

注意: 这个方法对于对于空集合返回 true,因为空集合的任何元素都是 true 。

_.every([true, 1, null, 'yes'], Boolean); // => false var users = [ { 'user': 'barney', 'age': 36, 'active': false }, { 'user': 'fred', 'age': 40, 'active': false } ]; // The `_.matches` iteratee shorthand. _.every(users, { 'user': 'barney', 'active': false }); // => false // The `_.matchesProperty` iteratee shorthand. _.every(users, ['active', false]); // => true // The `_.property` iteratee shorthand. _.every(users, 'active'); // => false _.filter(collection,function):遍历 collection(集合)元素,返回 predicate(断言函数)返回真值 的所有元素的数组。 predicate(断言函数)调用三个参数:(value, index|key, collection)。 var users = [ { 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false } ]; _.filter(users, function(o) { return !o.active; }); // => objects for ['fred'] // The `_.matches` iteratee shorthand. _.filter(users, { 'age': 36, 'active': true }); // => objects for ['barney'] // The `_.matchesProperty` iteratee shorthand. _.filter(users, ['active', false]); // => objects for ['fred'] // The `_.property` iteratee shorthand. _.filter(users, 'active'); // => objects for ['barney'] _.find(collection, function, [fromIndex=0]):遍历 collection(集合)元素,返回 predicate(断言函数)第一个返回真值的第一个元素。predicate(断言函数)调用3个参数: (value, index|key, collection)。 var users = [ { 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false }, { 'user': 'pebbles', 'age': 1, 'active': true } ]; _.find(users, function(o) { return o.age < 40; }); // => object for 'barney' // The `_.matches` iteratee shorthand. _.find(users, { 'age': 1, 'active': true }); // => object for 'pebbles' // The `_.matchesProperty` iteratee shorthand. _.find(users, ['active', false]); // => object for 'fred' // The `_.property` iteratee shorthand. _.find(users, 'active'); // => object for 'barney'
最新回复(0)