js实现lodash 的 differenceBy 方法
时间: 2023-07-09 16:36:29 浏览: 146
求js两个数组的差集,以便测试
lodash 的 differenceBy 方法可以通过以下的 JavaScript 实现:
```javascript
function differenceBy(array, values, iteratee) {
var map = new Map();
var result = [];
// 通过 iteratee 函数将 values 数组中每个元素映射到一个 Map 中的键
for (var i = 0; i < values.length; i++) {
var key = iteratee(values[i]);
map.set(key, true);
}
// 遍历 array 数组,如果 iteratee 函数将当前元素映射到的键不在 Map 中,则将其加入到结果数组中
for (var i = 0; i < array.length; i++) {
var key = iteratee(array[i]);
if (!map.has(key)) {
result.push(array[i]);
}
}
return result;
}
```
其中,`array` 表示要进行差集运算的数组,`values` 表示要去掉的元素组成的数组,`iteratee` 表示一个函数,用于将数组中的元素映射到一个键,以便进行比较。这个函数可以表示为一个字符串、一个函数、一个数组或一个对象。
阅读全文