如何比较两个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']
答案 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);