比较两个数组并使用纯javascript或jquery创建两个具有缺失和新元素的新数组

时间:2017-09-11 03:45:59

标签: javascript jquery arrays compare

如何比较两个javascript数组并创建两个新的缺失和新元素数组?数组元素将始终是字符串或数字,并不是100%确定它们将以任何方式排序。

var array1= ['11', '13', '14', '18', '22', '23', '25'];
var array2= ['11', '13', '15', '16', '17', '23', '25', '31'];
var missing_elements = [];
var new_elements = [];

***Required Output:***
missing_elements= ['14', '18', '22']
new_elements= ['15', '16', '17', '31']

1 个答案:

答案 0 :(得分:1)

一个简单的解决方案是迭代array1,使用.includes()一次测试一个元素以生成缺失元素列表,然后反过来获取新元素列表。

您可以使用.filter()arrow functions来保持简短:



var array1= ['11', '13', '14', '18', '22', '23', '25'];
var array2= ['11', '13', '15', '16', '17', '23', '25', '31'];

var missing_elements = array1.filter(v => !array2.includes(v));
var new_elements = array2.filter(v => !array1.includes(v));

console.log(missing_elements);
console.log(new_elements);