📜  Lodash _.invokeMap() 方法(1)

📅  最后修改于: 2023-12-03 15:17:25.757000             🧑  作者: Mango

Lodash _.invokeMap() 方法

简介

_.invokeMap() 是 Lodash 库中的一个方法,用于在一个集合中调用每个元素的指定方法,并返回每个调用结果的数组。这个方法可以方便地对集合中的每个对象执行相同的操作,并获取操作结果。

语法
_.invokeMap(collection, path, [args])
参数
  • collection (Array|Object): 需要迭代的集合。
  • path (Array|string): 对每个元素调用的方法路径。
  • [args] (...*): 调用每个方法时传递的参数。
返回值

(Array): 返回包含每个调用结果的新数组。

示例
const objects = [
  { 'a': 1, 'b': 2, 'c': 3 },
  { 'a': 4, 'b': 5, 'c': 6 }
];

// 使用 _.invokeMap() 方法调用每个对象的 _.reverse() 方法,并返回新数组
const reversed = _.invokeMap(objects, 'reverse');

console.log(reversed);
// Output: [[3, 2, 1], [6, 5, 4]]
解析

在以上示例中,_.invokeMap() 方法被用于迭代 objects 数组中每个对象,并对每个对象调用 reverse 方法。由于 reverse 方法是对数组进行倒序操作,因此最终返回的数组 reversed 包含了每个对象属性值倒序后的新数组。

具体来说,_.invokeMap(objects, 'reverse') 中的 'reverse' 表示要调用每个对象的 reverse 方法,objects 是要迭代的数组。这样,_.invokeMap() 方法会在每个对象上调用 'reverse' 方法,并将返回的结果存储在新数组中。

注意事项
  • path 参数可以是一个数组,数组中的每个元素表示方法的路径。例如,path: ['object', 'method'] 表示要调用对象的 object.method() 方法。
  • 如果集合中的元素不具备指定的方法,则该元素在结果数组中的位置将被设为 undefined

这就是 Lodash _.invokeMap() 方法的介绍。使用它可以方便地遍历集合中的对象,并对每个对象执行特定的方法,然后返回执行结果的数组。