js比较两个数组对象,取出不同的值

7,578 阅读1分钟

这个问题好想大多数公司面试都会问

这段代码只适用于数组array2大于array1,大概意思就是array1有的,array2肯定有,但是array2有的array1不一定有的情况,就像下边的例子一样

var array1 = [ {"Num": "A "  },{"Num": "B" }];
var array2 = [ {"Num": "A ","Name": "t1 " }, {"Num": "B","Name": "t2"}, {"Num": "C " ,"Name": "t3 "}];
var result = [];
for(var i = 0; i < array2.length; i++){
    var obj = array2[i];
    var num = obj.Num;
    var isExist = false;
    for(var j = 0; j < array1.length; j++){
        var aj = array1[j];
        var n = aj.Num;
        if(n == num){
            isExist = true;
            break;
        }
    }
    if(!isExist){
        result.push(obj);
    }
}
console.log(result);