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 )
實踐發現確實可以判斷,但是你的數組里面的對象鍵值對的順序要一致,否則即使對象相同,鍵值對順序不同也會判斷不一樣。