【发布时间】:2021-06-10 15:28:32
【问题描述】:
假设我们有两个数组。
var a = [B, C, E];
var b = [A, B, C, D, E];
Array a 是我们在本地保存的默认 Array。 现在我们从中获取的 api 向我们发送了这个名为 b 的数组 a 的新版本。 我怎样才能使用 lodash 所以我可以得到这两个数组的差异所以我在这种情况下得到 [A, D] 返回?
更新: 我想出了自己的解决方案,它有点工作,所以只有在接受的答案由于某种原因不起作用时才尝试这个:
const getObjectDiff = (newArr, oldArr) => {
if (_.isEqual(newArr, oldArr)) {
return true;
} else {
const checkLength = newArr.length;
const checkerLength = oldArr.length;
var indexes = [];
var falseIndexes = [];
var allIndexes = [];
for (let i = 0; i <= checkerLength; i++) {
for (let j = 0; j <= checkLength - 1; j++) {
allIndexes.push(i);
if (_.isEqual(newArr[i], oldArr[j])) {
indexes.push(i);
} else {
falseIndexes.push(i);
}
}
}
const falseUniqueIndexes = _.uniq(falseIndexes);
return _.difference(falseUniqueIndexes, indexes);
}
};
```
【问题讨论】:
标签: javascript node.js arrays lodash javascript-objects