lodash 一个 js 的实用工具库_前端开发者

前端开发者丨Web开发开发

https:www.rokub.com

lodash 一个 JavaScript 的实用工具库-一致性, 模块化, 高性能, 以及可扩展。
Array”方法_.chunk(array,[size=1])#ⓈⓉⓃ将数组(array)拆分成多个size长度的区块,并将这些区块组成一个新数组。如果array无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。引入版本3.0.0参数array(Array):需要处理的数组[size=1](number):每个数组区块的长度返回(Array):返回一个包含拆分区块的新数组(愚人码头注:相当于一个二维数组)。例子_.chunk([‘a’,’b’,’c’,’d’],2);
_.chunk([‘a’,’b’,’c’,’d’],3);
_.compact(array)ⓈⓃⓉ创建一个新数组,包含原数组中所有的非假值元素。例如false,null,0,””,undefined,和NaN都是被认为是“假值”。引入版本0.1.0参数array(Array):待处理的数组返回值(Array):返回过滤掉假值的新数组。例子_.compact([0,1,false,2,”,3]);
_.concat(array,[values])ⓈⓃⓉ创建一个新数组,将array与任何数组或值连接在一起。引入版本4.0.0参数array(Array):被连接的数组。[values](…*):连接的值。返回值(Array):返回连接后的新数组。例子
vararray=[1];
varother=_.concat(array,2,[3],[
[4]
]);
console.log(other);
console.log(array);
_.difference(array,[values])ⓈⓃⓉ创建一个具有唯一array值的数组,每个值不包含在其他给定的数组中。(愚人码头注:即创建一个新数组,这个数组中的值,为第一个数字(array参数)排除了给定数组中的值。)该方法使用SameValueZero做相等比较。结果值的顺序是由第一个数组中的顺序确定。注意:不像_.pullAll,这个方法会返回一个新数组。引入版本0.1.0参数array(Array):要检查的数组。[values](…Array):排除的值。返回值(Array):返回一个过滤值后的新数组。例子_.difference([3,2,1],[4,2]);
_.differenceBy(array,[values],[iteratee=_.identity])ⓈⓃⓉ这个方法类似_.difference,除了它接受一个iteratee(愚人码头注:迭代器),调用array和values中的每个元素以产生比较的标准。结果值是从第一数组中选择。iteratee会调用一个参数:(value)。(愚人码头注:首先使用迭代器分别迭代array和values中的每个元素,返回的值作为比较值)。Note:不像_.pullAllBy,这个方法会返回一个新数组。引入版本4.0.0参数array(Array):要检查的数组。[values](…Array):排除的值。[iteratee=_.identity](Array|Function|Object|string):iteratee调用每个元素。返回值(Array):返回一个过滤值后的新数组。例子_.differenceBy([3.1,2.2,1.3],[4.4,2.5],Math.floor);
_.differenceBy([{
‘x’:2
},{
‘x’:1
}],[{
‘x’:1
}],’x’);
_.differenceWith(array,[values],[comparator])ⓈⓃⓉ这个方法类似_.difference,除了它接受一个comparator(愚人码头注:比较器),它调用比较array,values中的元素。结果值是从第一数组中选择。comparator调用参数有两个:(arrVal,othVal)。Note:不像_.pullAllWith,这个方法会返回一个新数组。引入版本4.0.0参数array(Array):要检查的数组。[values](…Array):排除的值。[comparator](Function):comparator调用每个元素。返回值(Array):返回一个过滤值后的新数组。例子
varobjects=[{
‘x’:1,
‘y’:2
},{
‘x’:2,
‘y’:1
}];
_.differenceWith(objects,[{
‘x’:1,
‘y’:2
}],_.isEqual);
_.drop(array,[n=1])ⓈⓃⓉ创建一个切片数组,去除array前面的n个元素。(n默认值为1。)引入版本0.5.0参数array(Array):要查询的数组。[n=1](number):要去除的元素个数。返回值(Array):返回array剩余切片。例子_.drop([1,2,3]);
_.drop([1,2,3],2);
_.drop([1,2,3],5);
_.drop([1,2,3],0);
_.dropRight(array,[n=1])ⓈⓃⓉ创建一个切片数组,去除array尾部的n个元素。(n默认值为1。)引入版本3.0.0参数array(Array):要查询的数组。[n=1](number):要去除的元素个数。返回值(Array):返回array剩余切片。例子_.dropRight([1,2,3]);
_.dropRight([1,2,3],2);
_.dropRight([1,2,3],5);
_.dropRight([1,2,3],0);
_.dropRightWhile(array,[predicate=_.identity])ⓈⓃⓉ创建一个切片数组,去除array中从predicate返回假值开始到尾部的部分。predicate会传入3个参数:(value,index,array)。引入版本3.0.0参数array(Array):要查询的数组。[predicate=_.identity](Function):这个函数会在每一次迭代调用。返回值(Array):返回array剩余切片。例子
varusers=[{
‘user’:’barney’,
‘active’:true
},{
‘user’:’fred’,
‘active’:false
},{
‘user’:’pebbles’,
‘active’:false
}];
_.dropRightWhile(users,function(o){
return!o.active;
});
_.dropRightWhile(users,{
‘user’:’pebbles’,
‘active’:false
});
_.dropRightWhile(users,[‘active’,false]);
_.dropRightWhile(users,’active’);
_.dropWhile(array,[predicate=_.identity])ⓈⓃⓉ创建一个切片数组,去除array中从起点开始到predicate返回假值结束部分。predicate会传入3个参数:(value,index,array)。引入版本3.0.0参数array(Array):要查询的数组。[predicate=_.identity](Function):这个函数会在每一次迭代调用。返回值(Array):返回array剩余切片。例子
varusers=[{
‘user’:’barney’,
‘active’:false
},{
‘user’:’fred’,
‘active’:false
},{
‘user’:’pebbles’,
‘active’:true
}];
_.dropWhile(users,function(o){
return!o.active;
});
_.dropWhile(users,{
‘user’:’barney’,
‘active’:false
});
_.dropWhile(users,[‘active’,false]);
_.dropWhile(users,’active’);
_.fill(array,value,[start=0],[end=array.length])ⓈⓃⓉ使用value值来填充(替换)array,从start位置开始,到end位置结束(但不包含end位置)。Note:这个方法会改变array(愚人码头注:不是创建新数组)。引入版本3.2.0参数array(Array):要填充改变的数组。value(*):填充给array的值。[start=0](number):开始位置(默认0)。[end=array.length](number):结束位置(默认array.length)。返回值(Array):返回array。例子
vararray=[1,2,3];
_.fill(array,’a’);
console.log(array);
_.fill(Array(3),2);
_.fill([4,6,8,10],’*’,1,3);
_.findIndex(array,[predicate=_.identity],[fromIndex=0])ⓈⓃⓉ该方法类似_.find,区别是该方法返回第一个通过predicate判断为真值的元素的索引值(index),而不是元素本身。引入版本1.1.0参数array(Array):要搜索的数组。[predicate=_.identity](Array|Function|Object|string):这个函数会在每一次迭代调用。[fromIndex=0](number):Theindextosearchfrom.返回值(number):返回找到元素的索引值(index),否则返回-1。例子
varusers=[{
‘user’:’barney’,
‘active’:false
},{
‘user’:’fred’,
‘active’:false
},{
‘user’:’pebbles’,
‘active’:true
}];
_.findIndex(users,function(o){
returno.user==’barney’;
});
_.findIndex(users,{
‘user’:’fred’,
‘active’:false
});
_.findIndex(users,[‘active’,false]);
_.findIndex(users,’active’);
_.findLastIndex(array,[predicate=_.identity],[fromIndex=array.length-1])ⓈⓃⓉ这个方式类似_.findIndex,区别是它是从右到左的迭代集合array中的元素。引入版本2.0.0参数array(Array):要搜索的数组。[predicate=_.identity](Array|Function|Object|string):这个函数会在每一次迭代调用。[fromIndex=array.length-1](number):Theindextosearchfrom.返回值(number):返回找到元素的索引值(index),否则返回-1。例子
varusers=[{
‘user’:’barney’,
‘active’:true
},{
‘user’:’fred’,
‘active’:false
},{
‘user’:’pebbles’,
‘active’:false
}];
_.findLastIndex(users,function(o){
returno.user==’pebbles’;
});
_.findLastIndex(users,{
‘user’:’barney’,
‘active’:true
});
_.findLastIndex(users,[‘active’,false]);
_.findLastIndex(users,’active’);
_.flatten(array)ⓈⓃⓉ减少一级array嵌套深度。引入版本0.1.0参数array(Array):需要减少嵌套层级的数组。返回值(Array):返回减少嵌套层级后的新数组。例子_.flatten([1,[2,[3,[4]],5]]);
_.flattenDeep(array)ⓈⓃⓉ将array递归为一维数组。引入版本3.0.0参数array(Array):需要处理的数组。返回值(Array):返回一个的新一维数组。例子_.flattenDeep([1,[2,[3,[4]],5]]);
_.flattenDepth(array,[depth=1])ⓈⓃⓉ根据depth递归减少array的嵌套层级引入版本4.4.0参数array(Array):需要减少嵌套层级的数组。[depth=1](number):最多减少的嵌套层级数。返回值(Array):返回减少嵌套层级后的新数组。例子
vararray=[1,[2,[3,[4]],5]];
_.flattenDepth(array,1);
_.flattenDepth(array,2);
_.fromPairs(pairs)ⓈⓃⓉ与_.toPairs正好相反;这个方法返回一个由键值对pairs构成的对象。引入版本4.0.0参数pairs(Array):键值对pairs。返回值(Object):返回一个新对象。例子_.fromPairs([
[‘fred’,30],
[‘barney’,40]
]);
_.head(array)ⓈⓃⓉ获取数组array的第一个元素。引入版本0.1.0别名_.first参数array(Array):要查询的数组。返回值(*):返回数组array的第一个元素。例子_.head([1,2,3]);

前端开发者丨Web开发开发

https:www.rokub.com

_.head([]);
_.indexOf(array,value,[fromIndex=0])ⓈⓃⓉ使用SameValueZero等值比较,返回首次value在数组array中被找到的索引值,如果fromIndex为负值,将从数组array尾端索引进行匹配。引入版本0.1.0参数array(Array):需要查找的数组。value(*):需要查找的值。[fromIndex=0](number):开始查询的位置。返回值(number):返回值value在数组中的索引位置,没有找到为返回-1。例子_.indexOf([1,2,1,2],2);
_.indexOf([1,2,1,2],2,2);
_.initial(array)ⓈⓃⓉ获取数组array中除了最后一个元素之外的所有元素(愚人码头注:去除数组array中的最后一个元素)。引入版本0.1.0参数array(Array):要查询的数组。返回值(Array):返回截取后的数组array。例子_.initial([1,2,3]);
_.intersection([arrays])ⓈⓃⓉ创建唯一值的数组,这个数组包含所有给定数组都包含的元素,使用SameValueZero进行相等性比较。(愚人码头注:可以理解为给定数组的交集)引入版本0.1.0参数[arrays](…Array):待检查的数组。返回值(Array):返回一个包含所有传入数组交集元素的新数组。例子_.intersection([2,1],[4,2],[1,2]);
_.intersectionBy([arrays],[iteratee=_.identity])ⓈⓃⓉ这个方法类似_.intersection,区别是它接受一个iteratee调用每一个arrays的每个值以产生一个值,通过产生的值进行了比较。结果值是从第一数组中选择。iteratee会传入一个参数:(value)。引入版本4.0.0参数[arrays](…Array):待检查的数组。[iteratee=_.identity](Array|Function|Object|string):iteratee(迭代器)调用每个元素。返回值(Array):返回一个包含所有传入数组交集元素的新数组。例子_.intersectionBy([2.1,1.2],[4.3,2.4],Math.floor);
_.intersectionBy([{
‘x’:1
}],[{
‘x’:2
},{
‘x’:1
}],’x’);
_.intersectionWith([arrays],[comparator])ⓈⓃⓉ这个方法类似_.intersection,区别是它接受一个comparator调用比较arrays中的元素。结果值是从第一数组中选择。comparator会传入两个参数:(arrVal,othVal)。引入版本4.0.0参数[arrays](…Array):待检查的数组。[comparator](Function):comparator(比较器)调用每个元素。返回值(Array):返回一个包含所有传入数组交集元素的新数组。例子
varobjects=[{
‘x’:1,
‘y’:2
},{
‘x’:2,
‘y’:1
}];
varothers=[{
‘x’:1,
‘y’:1
},{
‘x’:1,
‘y’:2
}];
_.intersectionWith(objects,others,_.isEqual);
_.join(array,[separator=’,’])ⓈⓃⓉ将array中的所有元素转换为由separator分隔的字符串。引入版本4.0.0参数array(Array):要转换的数组。[separator=’,’](string):分隔元素。返回值(string):返回连接字符串。例子_.join([‘a’,’b’,’c’],’~’);
_.last(array)ⓈⓃⓉ获取array中的最后一个元素。引入版本0.1.0参数array(Array):要检索的数组。返回值(*):返回array中的最后一个元素例子_.last([1,2,3]);
_.lastIndexOf(array,value,[fromIndex=array.length-1])ⓈⓃⓉ这个方法类似_.indexOf,区别是它是从右到左遍历array的元素。引入版本0.1.0参数array(Array):要搜索的数组。value(*):要搜索的值。[fromIndex=array.length-1](number):开始搜索的索引值。返回值(number):返回匹配值的索引值,否则返回-1。例子_.lastIndexOf([1,2,1,2],2);
_.lastIndexOf([1,2,1,2],2,2);
_.nth(array,[n=0])ⓈⓃⓉ获取array数组的第n个元素。如果n为负数,则返回从数组结尾开始的第n个元素。引入版本4.11.0参数array(Array):要查询的数组。[n=0](number):要返回元素的索引值。返回值(*):获取array数组的第n个元素。例子
vararray=[‘a’,’b’,’c’,’d’];
_.nth(array,1);
_.nth(array,-2);
_.pull(array,[values])ⓈⓃⓉ移除数组array中所有和给定值相等的元素,使用SameValueZero进行全等比较。注意:和_.without方法不同,这个方法会改变数组。使用_.remove从一个数组中移除元素。引入版本2.0.0参数array(Array):要修改的数组。[values](…*):要删除的值。返回值(Array):返回array.例子
vararray=[1,2,3,1,2,3];
_.pull(array,2,3);
console.log(array);
_.pullAll(array,values)ⓈⓃⓉ这个方法类似_.pull,区别是这个方法接收一个要移除值的数组。Note:不同于_.difference,这个方法会改变数组array。引入版本4.0.0参数array(Array):要修改的数组。values(Array):要移除值的数组。返回值(Array):返回array。例子
vararray=[1,2,3,1,2,3];
_.pullAll(array,[2,3]);
console.log(array);
_.pullAllBy(array,values,[iteratee=_.identity])ⓈⓃⓉ这个方法类似于_.pullAll,区别是这个方法接受一个iteratee(迭代函数)调用array和values的每个值以产生一个值,通过产生的值进行了比较。iteratee会传入一个参数:(value)。Note:不同于_.differenceBy,这个方法会改变数组array。引入版本4.0.0参数array(Array):要修改的数组。values(Array):要移除值的数组。[iteratee=_.identity](Array|Function|Object|string):iteratee(迭代器)调用每个元素。返回值(Array):返回array.例子
vararray=[{
‘x’:1
},{
‘x’:2
},{
‘x’:3
},{
‘x’:1
}];
_.pullAllBy(array,[{
‘x’:1
},{
‘x’:3
}],’x’);
console.log(array);
_.pullAllWith(array,values,[comparator])ⓈⓃⓉ这个方法类似于_.pullAll,区别是这个方法接受comparator调用array中的元素和values比较。comparator会传入两个参数:(arrVal,othVal)。注意:和_.differenceWith不同,这个方法会改变数组array。引入版本4.6.0参数array(Array):要修改的数组。values(Array):要移除值的数组。[comparator](Function):comparator(比较器)调用每个元素。返回值(Array):返回array。例子
vararray=[{
‘x’:1,
‘y’:2
},{
‘x’:3,
‘y’:4
},{
‘x’:5,
‘y’:6
}];
_.pullAllWith(array,[{
‘x’:3,
‘y’:4
}],_.isEqual);
console.log(array);
_.pullAt(array,[indexes])ⓈⓃⓉ根据索引indexes,移除array中对应的元素,并返回被移除元素的数组。Note:和_.at不同,这个方法会改变数组array。引入版本3.0.0参数array(Array):要修改的数组。[indexes](…(number|number[])):要移除元素的索引。返回值(Array):返回移除元素组成的新数组。例子
vararray=[5,10,15,20];
varevens=_.pullAt(array,1,3);
console.log(array);
console.log(evens);
_.remove(array,[predicate=_.identity])ⓈⓃⓉ移除数组中predicate(断言)返回为真值的所有元素,并返回移除元素组成的数组。predicate(断言)会传入3个参数:(value,index,array)。Note:和_.filter不同,这个方法会改变数组array。使用_.pull来根据提供的value值从数组中移除元素。添加版本2.0.0参数array(Array):要修改的数组。[predicate=_.identity](Array|Function|Object|string):每次迭代调用的函数。返回(Array):返回移除元素组成的新数组。例子
vararray=[1,2,3,4];
varevens=_.remove(array,function(n){
returnn%2==0;
});
console.log(array);
console.log(evens);
_.reverse(array)ⓈⓃⓉ反转array,使得第一个元素变为最后一个元素,第二个元素变为倒数第二个元素,依次类推。Note:这个方法会改变原数组array,基于Array#reverse.添加版本4.0.0参数array(Array):要修改的数组。返回(Array):返回array.例子
vararray=[1,2,3];
_.reverse(array);
console.log(array);
_.slice(array,[start=0],[end=array.length])ⓈⓃⓉ裁剪数组array,从start位置开始到end结束,但不包括end本身的位置。Note:这个方法用于代替Array#slice来确保数组正确返回。添加版本3.0.0参数array(Array):要裁剪数组。[start=0](number):开始位置。[end=array.length](number):结束位置。返回(Array):返回数组array裁剪部分的新数组。_.sortedIndex(array,value)ⓈⓃⓉ使用二进制的方式检索来决定value值应该插入到数组中尽可能小的索引位置,以保证array的排序。添加版本0.1.0参数array(Array):要检查的排序数组。value(*):要评估的值。返回(number):返回value值应该在数组array中插入的索引位置index。例子_.sortedIndex([30,50],40);
_.sortedIndexBy(array,value,[iteratee=_.identity])ⓈⓃⓉ这个方法类似_.sortedIndex,除了它接受一个iteratee(迭代函数),调用每一个数组(array)元素,返回结果和value值比较来计算排序。iteratee会传入一个参数:(value)。添加版本4.0.0参数array(Array):要检查的排序数组。value(*):要评估的值。[iteratee=_.identity](Array|Function|Object|string):迭代函数,调用每个元素。返回(number):返回value值应该在数组array中插入的索引位置index。例子
varobjects=[{
‘x’:4
},{
‘x’:5
}];
_.sortedIndexBy(objects,{
‘x’:4
},function(o){
returno.x;
});
_.sortedIndexBy(objects,{
‘x’:4
},’x’);
_.sortedIndexOf(array,value)ⓈⓃⓉ这个方法类似_.indexOf,除了它是在已经排序的数组array上执行二进制检索。添加版本4.0.0参数array(Array):要搜索的数组。value(*):搜索的值。返回(number):返回匹配值的索引位置,否则返回-1。例子_.sortedIndexOf([4,5,5,5,6],5);
_.sortedLastIndex(array,value)ⓈⓃⓉ此方法类似于_.sortedIndex,除了它返回value值在array中尽可能大的索引位置(index)。添加版本3.0.0参数array(Array):要检查的排序数组。value(*):要评估的值。返回(number):返回value值应该在数组array中插入的索引位置index。例子_.sortedLastIndex([4,5,5,5,6],5);
_.sortedLastIndexBy(array,value,[iteratee=_.identity])ⓈⓃⓉ这个方法类似_.sortedLastIndex,除了它接受一个iteratee(迭代函数),调用每一个数组(array)元素,返回结果和value值比较来计算排序。iteratee会传入一个参数:(value)。添加版本4.0.0参数array(Array):要检查的排序数组。value(*):要评估的值。[iteratee=_.identity](Array|Function|Object|string):迭代函数,调用每个元素。返回(number):返回value值应该在数组array中插入的索引位置index。例子
varobjects=[{
‘x’:4
},{
‘x’:5
}];
_.sortedLastIndexBy(objects,{
‘x’:4
},function(o){
returno.x;
});
_.sortedLastIndexBy(objects,{
‘x’:4
},’x’);
_.sortedLastIndexOf(array,value)ⓈⓃⓉ这个方法类似_.lastIndexOf,除了它是在已经排序的数组array上执行二进制检索。添加版本4.0.0参数array(Array):要搜索的数组。value(*):搜索的值。返回(number):返回匹配值的索引位置,否则返回-1。例子_.sortedLastIndexOf([4,5,5,5,6],5);
_.sortedUniq(array)ⓈⓃⓉ这个方法类似_.uniq,除了它会优化排序数组。添加版本4.0.0参数array(Array):要检查的数组。返回(Array):返回一个新的不重复的数组。例子_.sortedUniq([1,1,2]);
_.sortedUniqBy(array,[iteratee])ⓈⓃⓉ这个方法类似_.uniqBy,除了它会优化排序数组。添加版本4.0.0参数array(Array):要检查的数组。[iteratee](Function):迭代函数,调用每个元素。返回(Array):返回一个新的不重复的数组。例子_.sortedUniqBy([1.1,1.2,2.3,2.4],Math.floor);
_.tail(array)ⓈⓃⓉ获取除了array数组第一个元素以外的全部元素。添加版本4.0.0参数array(Array):要检索的数组。返回(Array):返回array数组的切片(除了array数组第一个元素以外的全部元素)。例子_.tail([1,2,3]);
_.take(array,[n=1])ⓈⓃⓉ创建一个数组切片,从array数组的起始元素开始提取n个元素。添加版本0.1.0参数array(Array):要检索的数组。[n=1](number):要提取的元素个数。返回(Array):返回array数组的切片(从起始元素开始n个元素)。例子_.take([1,2,3]);
_.take([1,2,3],2);
_.take([1,2,3],5);
_.take([1,2,3],0);
_.takeRight(array,[n=1])ⓈⓃⓉ创建一个数组切片,从array数组的最后一个元素开始提取n个元素。添加版本3.0.0参数array(Array):要检索的数组。[n=1](number):要提取的元素个数。返回(Array):返回array数组的切片(从结尾元素开始n个元素)。例子_.takeRight([1,2,3]);
_.takeRight([1,2,3],2);
_.takeRight([1,2,3],5);
_.takeRight([1,2,3],0);
_.takeRightWhile(array,[predicate=_.identity])ⓈⓃⓉ从array数组的最后一个元素开始提取元素,直到predicate返回假值。predicate会传入三个参数:(value,index,array)。添加版本3.0.0参数array(Array):要检索的数组。[predicate=_.identity](Array|Function|Object|string):每次迭代调用的函数。返回(Array):返回array数组的切片。例子
varusers=[{
‘user’:’barney’,
‘active’:true
},{
‘user’:’fred’,
‘active’:false
},{
‘user’:’pebbles’,
‘active’:false
}];
_.takeRightWhile(users,function(o){
return!o.active;
});
_.takeRightWhile(users,{
‘user’:’pebbles’,
‘active’:false
});
_.takeRightWhile(users,[‘active’,false]);
_.takeRightWhile(users,’active’);
_.takeWhile(array,[predicate=_.identity])ⓈⓃⓉ从array数组的起始元素开始提取元素,,直到predicate返回假值。predicate会传入三个参数:(value,index,array)。添加版本3.0.0参数array(Array):需要处理的数组[predicate=_.identity](Array|Function|Object|string):每次迭代调用的函数。返回(Array):返回array数组的切片。例子
varusers=[{
‘user’:’barney’,
‘active’:false
},{
‘user’:’fred’,
‘active’:false
},{
‘user’:’pebbles’,
‘active’:true
}];
_.takeWhile(users,function(o){
return!o.active;
});
_.takeWhile(users,{
‘user’:’barney’,
‘active’:false
});
_.takeWhile(users,[‘active’,false]);
_.takeWhile(users,’active’);
_.union([arrays])ⓈⓃⓉ创建一个按顺序排列的唯一值的数组。所有给定数组的元素值使用SameValueZero做等值比较。(愚人码头注:arrays(数组)的并集,按顺序返回,返回数组的元素是唯一的)添加版本0.1.0参数[arrays](…Array):要检查的数组。返回(Array):返回一个新的联合数组。例子_.union([2],[1,2]);
_.unionBy([arrays],[iteratee=_.identity])ⓈⓃⓉ这个方法类似_.union,除了它接受一个iteratee(迭代函数),调用每一个数组(array)的每个元素以产生唯一性计算的标准。iteratee会传入一个参数:(value)。添加版本4.0.0参数[arrays](…Array):要检查的数组。[iteratee=_.identity](Array|Function|Object|string):迭代函数,调用每个元素。返回(Array):返回一个新的联合数组。例子_.unionBy([2.1],[1.2,2.3],Math.floor);
_.unionBy([{
‘x’:1
}],[{
‘x’:2
},{
‘x’:1
}],’x’);
_.unionWith([arrays],[comparator])ⓈⓃⓉ这个方法类似_.union,除了它接受一个comparator调用比较arrays数组的每一个元素。comparator调用时会传入2个参数:(arrVal,othVal)。添加版本4.0.0参数[arrays](…Array):要检查的数组。[comparator](Function):比较函数,调用每个元素。返回(Array):返回一个新的联合数组。例子
varobjects=[{
‘x’:1,
‘y’:2
},{
‘x’:2,
‘y’:1
}];
varothers=[{
‘x’:1,
‘y’:1
},{
‘x’:1,
‘y’:2
}];
_.unionWith(objects,others,_.isEqual);
_.uniq(array)ⓈⓃⓉ创建一个去重后的array数组副本。使用了SameValueZero做等值比较。只有第一次出现的元素才会被保留。添加版本0.1.0参数array(Array):要检查的数组。返回(Array):返回新的去重后的数组。例子_.uniq([2,1,2]);
_.uniqBy(array,[iteratee=_.identity])ⓈⓃⓉ这个方法类似_.uniq,除了它接受一个iteratee(迭代函数),调用每一个数组(array)的每个元素以产生唯一性计算的标准。iteratee调用时会传入一个参数:(value)。添加版本4.0.0参数array(Array):要检查的数组。[iteratee=_.identity](Array|Function|Object|string):迭代函数,调用每个元素。返回(Array):返回新的去重后的数组。例子_.uniqBy([2.1,1.2,2.3],Math.floor);
_.uniqBy([{
‘x’:1
},{
‘x’:2
},{
‘x’:1
}],’x’);
_.uniqWith(array,[comparator])ⓈⓃⓉ这个方法类似_.uniq,除了它接受一个comparator调用比较arrays数组的每一个元素。comparator调用时会传入2个参数:(arrVal,othVal)。添加版本4.0.0参数array(Array):要检查的数组。[comparator](Function):比较函数,调用每个元素。返回(Array):返回新的去重后的数组。例子
varobjects=[{
‘x’:1,
‘y’:2
},{
‘x’:2,
‘y’:1
},{
‘x’:1,
‘y’:2
}];
_.uniqWith(objects,_.isEqual);
_.unzip(array)ⓈⓃⓉ这个方法类似于_.zip,除了它接收分组元素的数组,并且创建一个数组,分组元素到打包前的结构。(愚人码头:返回数组的第一个元素包含所有的输入数组的第一元素,第一个元素包含了所有的输入数组的第二元素,依此类推。)添加版本1.2.0参数array(Array):要处理的分组元素数组。返回(Array):返回重组元素的新数组。例子
varzipped=_.zip([‘fred’,’barney’],[30,40],[true,false]);
_.unzip(zipped);
_.unzipWith(array,[iteratee=_.identity])ⓈⓃⓉ此方法类似于_.unzip,除了它接受一个iteratee指定重组值应该如何被组合。iteratee调用时会传入每个分组的值:(…group)。添加版本3.8.0参数array(Array):要处理的分组元素数组。[iteratee=_.identity](Function):这个函数用来组合重组的值。返回(Array):返回重组元素的新数组。例子
varzipped=_.zip([1,2],[10,20],[100,200]);
_.unzipWith(zipped,_.add);
_.without(array,[values])ⓈⓃⓉ创建一个剔除所有给定值的新数组,剔除值的时候,使用SameValueZero做相等比较。注意:不像_.pull,这个方法会返回一个新数组。添加版本0.1.0参数array(Array):要检查的数组。[values](…*):要剔除的值。返回(Array):返回过滤值后的新数组。例子_.without([2,1,2,3],1,2);
_.xor([arrays])ⓈⓃⓉ创建一个给定数组唯一值的数组,使用symmetricdifference做等值比较。返回值的顺序取决于他们数组的出现顺序。添加版本2.4.0参数[arrays](…Array):要检查的数组。返回(Array):返回过滤值后的新数组。例子_.xor([2,1],[2,3]);
_.xorBy([arrays],[iteratee=_.identity])ⓈⓃⓉ这个方法类似_.xor,除了它接受iteratee(迭代器),这个迭代器调用每一个arrays(数组)的每一个值,以生成比较的新值。iteratee调用一个参数:(value).添加版本4.0.0参数[arrays](…Array):要检查的数组。[iteratee=_.identity](Array|Function|Object|string):调用每一个元素的迭代函数。返回(Array):返回过滤值后的新数组。例子_.xorBy([2.1,1.2],[2.3,3.4],Math.floor);
_.xorBy([{
‘x’:1
}],[{
‘x’:2
},{
‘x’:1
}],’x’);
_.xorWith([arrays],[comparator])ⓈⓃⓉ该方法是像_.xor,除了它接受一个comparator,以调用比较数组的元素。comparator调用2个参数:(arrVal,othVal).添加版本4.0.0参数[arrays](…Array):要检查的数组。[comparator](Function):调用每一个元素的比较函数。返回(Array):返回过滤值后的新数组。例子
varobjects=[{
‘x’:1,
‘y’:2
},{
‘x’:2,
‘y’:1
}];
varothers=[{
‘x’:1,
‘y’:1
},{
‘x’:1,
‘y’:2
}];
_.xorWith(objects,others,_.isEqual);
_.zip([arrays])ⓈⓃⓉ创建一个分组元素的数组,数组的第一个元素包含所有给定数组的第一个元素,数组的第二个元素包含所有给定数组的第二个元素,以此类推。添加版本0.1.0参数[arrays](…Array):要处理的数组。返回(Array):返回分组元素的新数组。例子_.zip([‘fred’,’barney’],[30,40],[true,false]);
_.zipObject([props=[]],[values=[]])ⓈⓃⓉ这个方法类似_.fromPairs,除了它接受2个数组,第一个数组中的值作为属性标识符(属性名),第二个数组中的值作为相应的属性值。添加版本0.4.0参数[props=[]](Array):Thepropertyidentifiers.[values=[]](Array):Thepropertyvalues.返回(Object):Returnsthenewobject.例子_.zipObject([‘a’,’b’],[1,2]);
_.zipObjectDeep([props=[]],[values=[]])ⓈⓃⓉ这个方法类似_.zipObject,除了它支持属性路径。添加版本4.1.0参数[props=[]](Array):属性标识符(属性名)。[values=[]](Array):属性值。返回(Object):返回新对象。例子_.zipObjectDeep([‘a.b[0].c’,’a.b[1].d’],[1,2]);

 

前端开发者丨Web开发开发

https:www.rokub.com

» 本文来自:前端开发者 » 《lodash 一个 js 的实用工具库_前端开发者》
» 本文链接地址:https://www.rokub.com/213.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!