📅  最后修改于: 2023-12-03 15:02:46.446000             🧑  作者: Mango
_.differenceBy()
是 Lodash 库中的一种方法,用于比较两个数组,并返回其中一个数组中没有出现在另一个数组中的元素,并且会通过指定函数的结果来对比数组中的各个元素。
_.differenceBy(array, [values], [iteratee=_.identity])
array
(Array): 目标数组。[values]
(Array): 要排除的值。[iteratee=_.identity]
(Function): 迭代每个元素的函数。(Array): 返回一个新数组,其中包含 array
中不包含在 values
中的元素,通过 iteratee
处理后的值进行比较。
下面的例子演示如何使用 _.differenceBy()
方法。
const _ = require('lodash');
const arr1 = [1.1, 2.2, 3.3, 4.4];
const arr2 = [2.2, 4.4];
const arr3 = _.differenceBy(arr1, arr2, Math.floor);
console.log(arr3); // Output: [1.1, 3.3]
从上面的代码可以看出,我们传入两个数组 arr1
和 arr2
,并使用 Math.floor
函数对每个数组元素进行比较。最终的结果是在 arr1
中,但不包含在 arr2
中的两个元素 [1.1, 3.3]
。
在下面的例子中,我们将比较两个包含对象的数组,并使用 _.differenceBy()
方法来找到只存在于第二个数组中的元素。
const _ = require('lodash');
const arr1 = [{ x: 1 }, { x: 2 }, { x: 3 }];
const arr2 = [{ x: 1 }, { x: 2 }];
const arr3 = _.differenceBy(arr1, arr2, 'x');
console.log(arr3); // Output: [{ x: 3 }]
从上面代码可以看出,我们传入了两个包含对象的数组 arr1
和 arr2
,并使用 x
属性对每个数组元素进行比较。最终的结果是只在 arr1
中存在的一个对象 { x: 3 }
。