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

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

Lodash _.pullAllBy() 方法

_.pullAllBy() 是 Lodash 中的一个方法,它可以根据指定的迭代函数,从数组中移除所有与指定值相等的元素。

语法
_.pullAllBy(array, [values], [iteratee=_.identity])
参数
  • array:(Array) 需要修改的数组。
  • [values]:(Array) 要移除的值。
  • [iteratee=_.identity]:(Function) 迭代函数,用来计算每个元素的值。
返回值

返回修改后的数组。

例子
const arr = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]

_.pullAllBy(arr, [{ 'x': 1 }, { 'x': 3 }], 'x')

console.log(arr) // => [{ 'x': 2 }]

上面的例子中,会从数组 arr 中移除 x 属性等于 13 的元素,结果为 { 'x': 2 }

解释说明

_.pullAllBy() 执行的过程分为三步:

  1. 使用 iteratee 迭代数组中每个元素,生成一个新的数组。
  2. 遍历要移除的值,使用 iteratee 迭代每个值,生成一个新的值。
  3. 遍历第一步生成的新数组,使用 _.includes() 函数检查该元素是否在第二步生成的值中出现,如果出现则从原数组中移除该元素。

其中 iteratee 参数可以是一个函数或者是一个字符串。

如果 iteratee 是一个函数,则在执行上述过程时,会将每个元素传递给该函数,然后根据函数执行的结果进行比较和移除。

如果 iteratee 是一个字符串,则取数组中每个元素的该属性值进行比较和移除。在上面的例子中,x 属性相同的元素会被认为是相等的,因此会被移除。

总结

_.pullAllBy() 方法是一种方便快捷地从数组中移除指定元素的方法。在实际编程中可以使用该方法来简化代码,提高开发效率。