2019-05-05

集合函数

  • 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]

最后是一个广告贴,最近新开了一个分享技术的公众号,欢迎大家关注

你可能感兴趣的:(2019-05-05)