我有一个初始数组,然后我添加了一些新元素并删除了一些现有元素。
现在将更改后的数组与原始数组进行比较以确定添加的内容和删除的内容的最佳方法是什么?
答案 0 :(得分:1)
如果你想看到添加的项目,你需要在第二个数组中找到现有项目和不存在项目之间的差异。
让我们调用第一个数组 - A
和第二个 - B
。
现在删除的项目为difference(A, B)
,插入的项目为difference(B, A)
如果你正在使用underscore.js,你可以这样做:
var removed = _(A).difference(B);
var added = _(B).difference(A);
例如,您有A = [1,2,3,4]; B = [3,4,5,6];
,因此removed
将包含[1, 2]
,added
将包含[5, 6]
修改强>
您当然可以编写自己的difference()
,但使用 underscore.js 或 lodash 已证明其在我的实践中的可用性。当然,您可以随时使用filter()
或reduce()
答案 1 :(得分:1)
OrignalArray = OrignalArray.filter(function(val) {
return ModifiedArray.indexOf(val) == -1;
});
如果您想参考更多信息,请查看
在过滤时应用你的逻辑。