集合函数
- each(list, iteratee, [context]):遍历集合,并逐个执行函数,类似于原生的forEach
_.each([1,2,3], function(ele, index, arr) {
consle.log(ele)
})
- map(list, iteratee, [context]): 类似原生map
_.map([1,2,3], function(ele, index, arr) {
return num * 3;
})
- reduce(list, iteratee, [mome], [context]):类似原生reduce
var sum = _.reduce([1,2,3], function(memo, num) {
return memo + num;
})
reduceRight:类似原生reduceRigth
find(list, predicate, [context]):返回符合条件的第一个值,类似于ES6中的数组方法find
_.find([1,2,3], function(ele) {
return ele > 1;
})
- filter:返回所有为真组成的list,类似于原生的filter
_.filter([1,2,3,4,5], function(ele) {
return ele % 2 === 0;
})
- where(list, properties):返回包含所列的属性的所有键值对
_.where([{name: 'huruji', age:12},{name: 'huruji', age:23}], {name: 'huruji'})
findWhere(list, properties):返回where方法的第一个值
reject(list, predicate, [context]):与filter相反,返回未通过筛选的值
every:类似于原生的every,所有值通过则返回true
some:有真则返回真,类似于原生的some
contains(list, value, [fromIndex]):list中有指定的value则返回true
_.contains([1,2,3], 3, 1)
- invoke(list, methodName, *arguments):list中的每个元素执行method,可以在后面为这个方法传递若干参数
_.invoke([[2,3,1,4], [314,34,12,57]], 'sort');
- pluck(list, propertyName):选取数组对象中含有某属性的值,返回一个数组
var users = [{name:'huruji',age:12},{name: 'xie'}];
_.pluck(users, 'name');
// ['huruji','xie']
- max(list, [iteratee], [context]):返回list中的最大值,iteratee作为list中的排序依据
var users = [{name:'huruji',age:12},{name: 'xie',age:100}];
_.max(users, function(ele) {
return ele.age
});
// {name:'xie',age:100}
min:类似max,返回最小值
sortBy(list ,iteratee, [context]):返回排序后的拷贝副本,iteratee作为排序依据
groupBy(list, iteratee, [context]):通过iteratee作为分组的依据
_.groupBy([1.3, 2.11, 2.4], fucntion(ele){
return Math.floor(ele);
})
// {1: [1.3], 2: [2.11, 2.4}
- indexBy:类似于groupBy,返回键对应的对象分组
var storage = [{name:'huruji', age:12},{name:'xie',age:100}];
_.indexBy(storage, 'age');
=> {
"12": {name: "huruji", age:12},
"100": {name: "xie", age:100}
}
- countBy:返回对list中的对象数量的计数
_.count([1,2,3,4,5], function(num) {
return num % 2 === 0 ? 'even' : 'odd';
})
// {odd: 3, even: 2}
- shuffle:返回一个使用洗牌算法后的随机乱序的list副本
_.shuffle([1,2,3,4]);
// [1,3,4,2]
- sample(list, [n]):从list中随机返回n个数,n默认为1
_.sample([1,2,3,4]);
// 2
_.sample([1,2,3,4,5], 2);
// [2,4]
toArray:将list转换为数组
size:返回list的长度
partition(array, predicate):将一个数组拆分为两个数组一个满足predicate,另一个不满足
_.partition([0,1,2,3,4,5], isOdd);
// [[1,3,5], [0,2,4]
最后是一个广告贴,最近新开了一个分享技术的公众号,欢迎大家关注