集合
_.reduce()
:对数组或集合进行归约操作。它从数组的第一个元素开始,依次对每个元素执行一个用户提供的函数,并将结果累积到一个累加器上,最终返回累加器的值_.reduce(collection, iteratee, [accumulator], [initAccum]) /** * collection: 要遍历的集合,可以是数组、对象等。 * iteratee: 用于每个元素的回调函数,可以接收四个参数:accumulator(累加器),value(当前元素),index(当前索引),collection(集合本身)。 * accumulator: (可选)初始值,如果未提供,则将集合的第一个元素作为初始值。 * initAccum: (可选)布尔值,指示是否将第一个元素作为初始值,默认为 false。 */ let sum = _.reduce([1, 2, 3, 4], (accumulator, value)=> { return accumulator + value; }, 0); console.log(sum); // 输出: 10
_.groupBy()
:将集合(数组或对象)的元素按特定条件分组。它会创建一个对象,其中每个键代表分组的条件,值为满足该条件的元素数组_.groupBy(collection, iteratee) /** * collection: 要进行分组的集合,可以是数组或对象。 * iteratee: 分组的条件,可以是属性名、函数或者字符串,如果是字符串,表示根据该属性的值进行分组。 */ const users = [ { 'user': 'Alice', 'age': 25, 'active': true }, { 'user': 'Bob', 'age': 30, 'active': false }, { 'user': 'Charlie', 'age': 25, 'active': true }, { 'user': 'David', 'age': 30, 'active': true } ]; // 按年龄分组 const groupedByAge = _.groupBy(users, 'age'); console.log(groupedByAge); /* 输出: { '25': [ { 'user': 'Alice', 'age': 25, 'active': true }, { 'user': 'Charlie', 'age': 25, 'active': true } ], '30': [ { 'user': 'Bob', 'age': 30, 'active': false }, { 'user': 'David', 'age': 30, 'active': true } ] } */
_.countBy()
:对集合中的元素进行计数。它会创建一个对象,其中每个键表示某个特定条件的结果,值为该条件对应的元素数量_.countBy(collection, iteratee) /** * collection: 要进行计数的集合,可以是数组或对象。 * iteratee: 计数的条件,可以是属性名、函数或者字符串。如果是字符串,表示根据该属性的值进行计数。 / const users = [ { 'user': 'Alice', 'age': 25, 'active': true }, { 'user': 'Bob', 'age': 30, 'active': false }, { 'user': 'Charlie', 'age': 25, 'active': true }, { 'user': 'David', 'age': 30, 'active': true } ]; // 按年龄计数 const countByAge = _.countBy(users, 'age'); console.log(countByAge); /* 输出: { '25': 2, '30': 2 } */
_.filter()
:用于从集合(数组或对象)中筛选出符合指定条件的元素。它返回一个新数组,包含所有满足条件的元素_.filter(collection, predicate) /** * collection: 要进行过滤的集合,可以是数组或对象。 * predicate: 筛选条件,可以是函数、属性名或其他条件。如果是函数,它会对每个元素进行测试,返回 true 或 false 来决定该元素是否包含在结果中 / const users = [ { 'user': 'Alice', 'age': 25, 'active': true }, { 'user': 'Bob', 'age': 30, 'active': false }, { 'user': 'Charlie', 'age': 25, 'active': true }, { 'user': 'David', 'age': 30, 'active': true } ]; // 通过活跃状态过滤用户 const activeUsers = _.filter(users, { 'active': true }); console.log(activeUsers); /* 输出: [ { 'user': 'Alice', 'age': 25, 'active': true }, { 'user': 'Charlie', 'age': 25, 'active': true }, { 'user': 'David', 'age': 30, 'active': true } ]
数组
_.chunk():将数组(array)拆分成多个
size
长度的区块,并将这些区块组成一个新数组。 如果array
无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块_.chunk(array, [size=1]) _.chunk(['a', 'b', 'c', 'd'], 2); // => [['a', 'b'], ['c', 'd']]
函数
_.once():创建一个只能调用
func
一次的函数。 重复调用返回第一次调用的结果。func
调用时,this
绑定到创建的函数,并传入对应参数var initialize = _.once(createApplication); initialize(); initialize(); // `initialize` 只能调用 `createApplication` 一次。
其它
_.cloneDeep():深拷贝
var objects = [{ 'a': 1 }, { 'b': 2 }]; var deep = _.cloneDeep(objects); console.log(deep[0] === objects[0]); // => false
5 条评论
?诗歌散文评语?
每一个段落都紧密相连,逻辑清晰,展现了作者高超的写作技巧。
哈哈哈,写的太好了https://www.lawjida.com/
你的文章让我感受到了无尽的欢乐,谢谢分享。 http://www.55baobei.com/TFO4Vy9bW2.html
《米奇妙妙屋第三季》欧美动漫高清在线免费观看:https://www.jgz518.com/xingkong/100129.html