洛达什 | _.differenceWith() 方法
_.differenceWith() 方法类似于 _.difference() 方法,它返回包含第一个数组中的值的数组,而不是在第二个数组中,而是在 _.differenceWith() 中比较第一个数组的所有元素通过应用第三个提供的比较与第二个数组。阅读本文可能会有点复杂,但是当您看到示例时就会变得简单。
句法:
_.differenceWith(array, [values], [comparator])
参数:此方法接受三个参数,如上所述,如下所述:
- 数组:此参数保存检查或检查值的数组。
- values:此参数保存需要删除的值。
- 比较器:此参数保存每个元素调用的比较。
返回值:该方法根据上述条件返回一个数组。
示例 1:
const _ = require('lodash')
let x = [1, 2, 3]
let y = [2, 4, 5]
let result = _.differenceWith(x, y, _.isEqual);
console.log(result);
在这里, const _ = require('lodash')
用于将 lodash 库导入文件。
输出:
[1, 3]
所以,这里第一个数组的每个元素都根据第三个比较器与第二个数组的每个元素进行比较,在我们的例子中是_.isEqual。因此,如果值变得相等,则将其删除。
示例 2:
const _ = require('lodash');
let x = [{a: 1}, {b: 2}, 6]
let y = [{a: 1}, 7, 6]
let result = _.differenceWith(x, y, _.isEqual);
console.log(result);
输出:
[{b: 2}]
示例 3:
const _ = require('lodash');
let x1 = [1, 2, 3]
let y1 = [2, 4, 5]
let result1 = _.differenceWith(x1, y1, _.isEqual);
console.log(result1);
let x2 = [{a: 1}, {b: 2}, 6]
let y2 = [{a: 1}, 7, 6]
let result2 = _.differenceWith(x2, y2, _.isEqual);
console.log('\n\n', result2);
输出:
注意:这在普通 JavaScript 中不起作用,因为它需要安装库 lodash。
参考: https://lodash.com/docs/4.17.15#differenceWith