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

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

Lodash _.differenceBy() 方法

_.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]

从上面的代码可以看出,我们传入两个数组 arr1arr2,并使用 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 }]

从上面代码可以看出,我们传入了两个包含对象的数组 arr1arr2,并使用 x 属性对每个数组元素进行比较。最终的结果是只在 arr1 中存在的一个对象 { x: 3 }

参考文献