比较2个数组的新元素和删除元素的最佳方法是什么?

时间:2014-03-04 13:27:19

标签: javascript arrays algorithm

我有一个初始数组,然后我添加了一些新元素并删除了一些现有元素。

现在将更改后的数组与原始数组进行比较以确定添加的内容和删除的内容的最佳方法是什么?

2 个答案:

答案 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;
});  

如果您想参考更多信息,请查看

Filter Option in javascript

在过滤时应用你的逻辑。