比较两个数组以检测删除和添加元素

Posted

技术标签:

【中文标题】比较两个数组以检测删除和添加元素【英文标题】:Compare two arrays for detect remove and add element [closed] 【发布时间】:2016-03-23 22:22:25 【问题描述】:

有两个数组,

One -> ["A","B","C","D"]
Two -> ["A","E","H","D"]

我需要检查数组详细信息。我提到数组一是现有数据(更新之前),数组二是更新数据(更新数组一之后)。我需要弄清楚哪些数据进入该数组(数组二)以及哪些数据从该数组(数组一)中删除。

【问题讨论】:

请您在这里纠正一些语法,因为问题不太清楚。 我需要检查数组详细信息。我提到数组 1 是现有数据,数组 2 是更新数据。我需要弄清楚哪些数据进入该数组以及哪些数据从该数组中删除。这是基本的想法。你明白了吗..? 【参考方案1】:

jQuery(function() 
var array1 = ["A", "B", "C", "D"];
var array2 = ["A","H","J","D"];
var foo1 = [];
var foo2 = [];
var i = 0;
jQuery.grep(array2, function(el) 

    if (jQuery.inArray(el, array1) == -1) foo1.push(el);


    i++;

);
jQuery.grep(array1, function(e2) 

    if (jQuery.inArray(e2, array2) == -1) foo2.push(e2);


    i++;

);


alert(" Removed Data is " + foo2);
alert(" New Data is " + foo1);
  
  );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

【讨论】:

这完美地回答了 OPs 问题。+1【参考方案2】:

查看http://underscorejs.org/#arrays 函数,您需要使用_.intersection 和_.difference 方法。如果您不想要新的依赖项,您可以很容易地自己编写函数代码

_.intersection(One, Two) -> 没有改变数据

_.difference(Two, One) -> 新数据

_.difference(One, Two) -> 删除数据

【讨论】:

它正在工作。感谢您的帮助

以上是关于比较两个数组以检测删除和添加元素的主要内容,如果未能解决你的问题,请参考以下文章

java TreeSet能存放两个相同的元素吗?

JS数组方法汇总 array数组元素的添加和删除

JS数组方法汇总 array数组元素的添加和删除

如何将两个数组的元素建立起对应关系

比较两个迭代器并检查哪些元素被添加,删除或两者之间相同

js查找数组中出现次数最多的元素