1.数组
1.1 _.chunk
_.chunk(array, [size=1])
1.1.1 概念
将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
1.1.2 参数
(1)array (Array): 需要处理的数组
(2)[size=1] (number): 每个数组区块的长度
1.1.3 返回
(Array): 返回一个包含拆分区块的新数组(注:相当于一个二维数组)。
1.1.4 示例
(1) 输入:
_.chunk(['a', 'b', 'c', 'd'], 3);
输出: [['a', 'b', 'c'], ['d']]
(2) 输入:
_.chunk([‘1’,’2’,’3’,’4’,’5’,’6’,’7’], 3);
输出: [[‘1’, ‘2’, ‘3’],[‘4’, ‘5’, ‘6’],[‘7’]]
1.2 _.findIndex
_.findIndex(array, [predicate=_.identity], [fromIndex=0])
1.2.1 概念
该方法返回第一个通过 predicate 判断为真值的元素的索引值(index),而不是元素本身。
1.2.2 参数
(1)array (Array): 要搜索的数组。
(2)[predicate=_.identity] (Array|Function|Object|string): 这个函数会在每一次迭代调用。
(3)[fromIndex=0] (number): The index to search from.
1.2.3 返回
(number): 返回找到元素的 索引值(index),否则返回 -1。
1.2.4 示例
(1) 输入:
let list3 = [{name:'test1',id:'1'},{name:'test2',id:'2'},{name:'test3',id:'3'},{name:'test4',id:'4'}]
_.findIndex(list3, function(o) { return o.id == '1'; });
输出: 0
1.3 _.fromPairs
_.fromPairs(pairs)
1.3.1 概念
这个方法返回一个由键值对pairs构成的对象。
1.3.2 参数
(1)pairs (Array): 键值对pairs。
1.3.3 返回
(Object): 返回一个新对象。
1.3.4 示例
(1) 输入:
_.fromPairs([['fred', 30], ['barney', 40]]);
输出: { 'fred': 30, 'barney': 40 }
1.4 _.join
_.join(array, [separator=','])
1.4.1 概念
将 array 中的所有元素转换为由 separator 分隔的字符串。
1.4.2 参数
(1)array (Array): 要转换的数组。
(2)[separator=','] (string): 分隔元素。
1.4.3 返回
(string): 返回连接字符串。
1.4.4 示例
(1) 输入:
_.join(['a', 'b', 'c'], '~');
输出:'a~b~c'
1.5 _.slice
_.slice(array, [start=0], [end=array.length])
1.5.1 概念
裁剪数组array,从 start 位置开始到end结束,但不包括 end 本身的位置([,))。类似于数组的slice方法,不破坏数组
1.5.2 参数
(1)array (Array): 要裁剪数组。
(2)[start=0] (number): 开始位置。
(3)[end=array.length] (number): 结束位置
1.5.3 返回
(Array): 返回 数组array 裁剪部分的新数组。
1.5.4 示例
(1) 输入:
_.slice(['1','2','3','4','5','6','7'],1,-2)
输出:[ '2', '3', '4', '5']
1.6 _.zip
_.zip([arrays])
1.6.1 概念
创建一个分组元素的数组,数组的第一个元素包含所有给定数组的第一个元素,数组的第二个元素包含所有给定数组的第二个元素,以此类推。
1.6.2 参数
(1)[arrays] (...Array): 要处理的数组
1.6.3 返回
(Array): 返回分组元素的新数组。。
1.6.4 示例
(1) 输入:
_.zip(['fred', 'barney'], [30, 40], [true, false]);
输出:[['fred', 30, true], ['barney', 40, false]]
1.7 _.zipObject
_.zipObject([props=[]], [values=[]])
1.7.1 概念
这个方法类似_.fromPairs,除了它接受2个数组,第一个数组中的值作为属性标识符(属性名),第二个数组中的值作为相应的属性值。
1.7.2 参数
(1)[props=[]] (Array): The property identifiers.
(2)[values=[]] (Array): The property values.
1.7.3 返回
(Object): Returns the new object.
1.7.4 示例
(1) 输入:
_.zipObject(['a', 'b'], [1, 2]);
输出: { 'a': 1, 'b': 2 }
2.集合
2.1 _.reduce
_.reduce(collection, [iteratee=_.identity], [accumulator])
2.1.1 概念
压缩 collection(集合)为一个值,通过 iteratee(迭代函数)遍历 collection(集合)中的每个元素,每次返回的值会作为下一次迭代使用(注:作为iteratee(迭代函数)的第一个参数使用)。 如果没有提供 accumulator,则 collection(集合)中的第一个元素作为初始值。(注:accumulator参数在第一次迭代的时候作为iteratee(迭代函数)第一个参数使用。) iteratee 调用4个参数:(accumulator, value, index|key, collection).
2.1.2 参数
(1)collection (Array|Object): 用来迭代的集合。
(2)[iteratee=_.identity] (Function): 每次迭代调用的函数。
(3)[accumulator] (*): 初始值 ( 如{}、[] )
2.1.3 返回
(*): 返回累加后的值。
2.1.4 示例
(1) 输入:
_.reduce([1, 2], function(sum, n) {
return sum + n;
}, 0);
输出:3
(未完)