判斷兩個物件是否相同,判斷物件陣列中是否含有某個物件。
阿新 • • 發佈:2019-02-15
var json1 = {
addroleData: [{
key:1,
label:'一'
},{
label:'二',
key:2
},{
key:3,
label:'三'
},{
key:3,
label:'二'
},{
key:4,
label:'二'
}]
};
var json2 = {
addroleData: [{
label:'一',
key:1
},{
key:2,
label:'二'
}]
};
function mergeArr(json1, json2) {
var keyArr = [];
for(var i = 0; i< json1.length; i++) {
if ( JSON.stringify(json2).indexOf(JSON .stringify(json1[i])) == -1 ) {
keyArr.push(i);
}
}
return keyArr;
}
console.log(mergeArr(json1.addroleData, json2.addroleData));
判斷的主要在於if ( JSON.stringify(json2).indexOf(JSON.stringify(json1[i])) == -1 )
實踐發現確實可以判斷,但是你的數組裡面的物件鍵值對的順序要一致,否則即使物件相同,鍵值對順序不同也會判斷不一樣。