📅  最后修改于: 2023-12-03 15:17:26.047000             🧑  作者: Mango
_.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
属性等于 1
或 3
的元素,结果为 { 'x': 2 }
。
_.pullAllBy()
执行的过程分为三步:
iteratee
迭代数组中每个元素,生成一个新的数组。iteratee
迭代每个值,生成一个新的值。_.includes()
函数检查该元素是否在第二步生成的值中出现,如果出现则从原数组中移除该元素。其中 iteratee
参数可以是一个函数或者是一个字符串。
如果 iteratee
是一个函数,则在执行上述过程时,会将每个元素传递给该函数,然后根据函数执行的结果进行比较和移除。
如果 iteratee
是一个字符串,则取数组中每个元素的该属性值进行比较和移除。在上面的例子中,x
属性相同的元素会被认为是相等的,因此会被移除。
_.pullAllBy()
方法是一种方便快捷地从数组中移除指定元素的方法。在实际编程中可以使用该方法来简化代码,提高开发效率。