【发布时间】:2018-01-27 23:20:52
【问题描述】:
这是一个非常简单的问题,但我无法弄清楚逻辑。
我有Arr1 = [1,2,3,4] 和Arr2 = [3,4,5,6]
我想比较 Arr2 和 Arr1 并将缺失值添加到
MissingArr = [];
我的代码
let missing = [];
arrOfNum.forEach( (number) => {
// Arr2 = 3,4,5,6
console.log("number: "+number);
for(let i = 0; i < this.numbers.length; i++){
// Arr1 = 1,2,3,4
console.log("this.numbers: "+this.numbers[i]['number']);
if(number == this.numbers[i]['number'])
{
//Do Nothing
}else{
missing.push(this.numbers[i]['number']);
}
}
});
我不确定如何检查 Arr2 到 Arr1(完成整个 forloop),并且只有在 Arr1 中不存在 Arr2 值时才将其添加到缺失的数组中。
更新
Arr1 = [{id:1, number:1}, {id:2, number:2},{id:3, number:3}, {id:4, number:4}]
Arr2 = [3,4,5,6]
所以缺少的数组应该是:Missing= [5,6]
【问题讨论】:
-
Arr2.filter(e => !Arr1.includes(e));? -
@NenadVracar 我忘了提到我的 Arr2 只是数字 arr 而 Arr1 是对象数组。这仍然有效吗? !Arr1['numbers'].includes(e)
-
发布您的实际数据。
-
@NenadVracar 我已将实际数据发布到问题的更新部分
标签: javascript arrays json