集合指(Array|Object)。數組
一、_.countBy(collection, [iteratee=_.identity]):按照必定規則統計數量。返回一個對象,key爲迭代器運算的結果,value爲匹配該結果的數量。ide
_.countBy(['one', 'two', 'three'], 'length'); // => { '3': 2, '5': 1 } _.countBy([6.1, 4.2, 6.3], Math.floor); // => { '4': 1, '6': 2 }
二、_.groupBy(collection, [iteratee=_.identity]):按照必定規則進行分組,用法雷同_.countBy()。返回一個對象,key爲迭代器運算的結果,value爲包含全部匹配項的數組。函數
_.groupBy(['one', 'two', 'three'], 'length'); // => { '3': ['one', 'two'], '5': ['three'] } _.groupBy([6.1, 4.2, 6.3], Math.floor); // => { '4': [4.2], '6': [6.1, 6.3] }
三、_.forEach(collection, [iteratee=_.identity]):簡寫爲_.each(),相似原生Array的forEach方法。
相似方法:
_.forEachRight(collection, [iteratee=_.identity]):從右往左遍歷。prototype
四、_.every(collection, [predicate=_.identity]):返回一個布爾值。若是集合的每一項都符合條件才返回true。相似原生Array的every方法。code
var users = [ { 'user': 'barney', 'age': 36, 'active': false }, { 'user': 'fred', 'age': 40, 'active': false } ]; _.every(users, ['active', false]); // => true _.every(users, 'active'); // => false
五、_.filter(collection, [predicate=_.identity]):篩選符合條件的項,返回一個數組,相似原生Array的filter方法。對象
_.filter([1,2,3,4,5,6], function(o) { return o>3; }); // => [4, 5, 6]
六、_.find(collection, [predicate=_.identity], [fromIndex=0]):照出符合條件的項,返回最早匹配的項或undefined。相似原生的Array的find方法。three
類似方法:
_.findLast(collection, [predicate=_.identity], [fromIndex=collection.length-1]):從後往前匹配。it
七、_.flatMap(collection, [iteratee=_.identity]):按照規則擴充數組,相似原生Array的flatMap方法。io
_.flatMap([1, 2], function (n) { return [n, n]; }); // => [1, 1, 2, 2]
相似方法:
_.flatMapDeep(collection, [iteratee=_.identity]):最後返回一維數組。
_.flatMapDepth(collection, [iteratee=_.identity], [depth=1]):知道返回數組的維度。ast
八、_.includes(collection, value, [fromIndex=0]):從集合的fromIndex開始查找,若是集合裏包含value返回true,不然返回false。相似原生Array的includes方法。
_.includes([1, 2, 3], 1, 2); // => false 從第2位查找1
九、_.invokeMap(collection, path, [args]):分別對集合的每一項調用指定方法,感受跟_.map()的做用差很少,迭代器調用方式略有不一樣。
_.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); // => [[1, 5, 7], [1, 2, 3]] _.invokeMap([123, 456], String.prototype.split, ''); // => [['1', '2', '3'], ['4', '5', '6']]
相似方法:
_.map(collection, [iteratee=_.identity]):相似原生Array的map方法。
延伸:
lodash裏不少方法均可以接收迭代器函數,像 _.every, _.filter, _.map, _.mapValues, _.reject, and _.some等。
十、_.keyBy(collection, [iteratee=_.identity]):按照必定規則進行分組,用法雷同_.groupBy()。返回一個對象,key爲迭代器運算的結果,value爲匹配迭代方法的一項,若是多個項都匹配,value則取最後一個匹配上的項。
var array = [ { 'dir': 'left', 'code': 97 }, { 'dir': 'left1', 'code': 97 }, { 'dir': 'right', 'code': 100 } ]; _.keyBy(array, function(o) { return String.fromCharCode(o.code); }); // { // a : {dir: "left1", code: 97}, // d : {dir: "right", code: 100} // }