前端学习笔记(18)- Lodash 常用方法

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

(未完)

猜你喜欢

转载自blog.csdn.net/JiangZhengyang7/article/details/132431310