集合指(Array|Object)。
countBy:
创建一个组成对象,key为迭代器运算的结果,value为匹配该结果的数量(注:迭代次数)
groupBy:
用法类似于_.countBy()。返回一个对象,key为迭代器运算的结果,value为包含所有匹配项的数组。
_.groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }
forEach,forEachRight:遍历集合
every:
检查 collection
(集合)中的 所有 元素是否都返回真值
some:有一个符合条件就返回真值
filter
reject:和filter相反,返回不符合条件的元素
find:返回符合条件的第一个元素或者undefined
flatMap,flatMapDeep(有几层展开几层):
创建一个扁平化(注:同阶数组)的数组,这个数组的值来自集合中的每一个值经过迭代函数处理后返回的结果,并且扁平化合并。(用于扩充数组)
function duplicate(n) {
return [n, n];
}
_.flatMap([1, 2], duplicate);
// => [1, 1, 2, 2]
includes:检查value值是否在集合中
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']]
keyBy:
按照一定规则进行分组,用法雷同_.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}
// }
_.orderBy(collection, [iteratees=[_.identity]], [orders]):排序。这个方法跟_.sortBy挺像,不同的是_.orderBy可以指定迭代函数排序的方式orders,如果orders未指定,默认采取升序排列(排序)
_.partition(collection, [predicate=_.identity]):返回一个数组,将集合分成两部分,符合迭代函数规则的放在第一个数组,不符合迭代规则的放在第二个数组。(筛选)
reduce:看不懂
sample:获取一个随机元素;
sampleSize:获取n个随机元素
shuffle:打乱集合的顺序
size:返回集合的长度
sortBy:以迭代函数处理的结果升序排序