这是一个非常简单的问题,但我无法弄清楚逻辑。
我有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]
答案 0 :(得分:1)
您可以使用YouCustomFormNameHere
和filter
方法执行此操作。
some
答案 1 :(得分:0)
您可以使用Array.filter来实现此目的。 Array.filter返回一个包含与谓词匹配的项的数组。
var arr1 = [{key: 1},{key: 2},{key: 3},{key: 4}];
var arr2 = [3,4,5,6];
//This will return all values in array2 missing in array1
var missing = arr1.filter(function(arr1_item){
return arr2.indexOf(arr1_item.key) === -1;
});