比较2个数组并将缺失值推送到数组 - Javascript

时间:2018-01-27 15:02:28

标签: javascript arrays json

这是一个非常简单的问题,但我无法弄清楚逻辑。

我有Arr1 = [1,2,3,4]Arr2 = [3,4,5,6]

我想将Arr2Arr1进行比较并添加缺失值 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]

2 个答案:

答案 0 :(得分:1)

您可以使用YouCustomFormNameHerefilter方法执行此操作。

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;
});