我有以下两个数组:
var data1=[
{
"id": 1,
"url": "http://192.168.1.165:90/asset/"
},
{
"id": 2,
"url": "Assigned"
}
]
var data2=[
{
"id": 1,
"url": "http://192.168.1.165:90/asset/"
},
{
"id": 2,
"url": "Assigned"
},
{
"id": 3,
"url": "Assigned"
}
]
结果:
var unique=[{ {
"id": 3,
"url": "Assigned"
}}]
如何从这两个数组中获取唯一对象?
我试过像这样使用 for
循环:
var unique = [];
for(var i = 0; i < data2.length; i++){
var found = false;
for(var j = 0; data1.length; j++){
if(data2[i].id == data1[j].id){
found = true;
break;
}
}
if(found == false){
unique.push(array1[i]);
}
}
但是想要使用函数式 javascript 获得解决方案...
最佳答案
这样试试
var joined = data1.concat(data2);
var temp = [];
joined.forEach(function (x) {
var objList=joined.filter(function(y){ return y.id == x.id});
if(objList.length == 1) // if data count of current item in merged array is 1 that's means it belong to only one data source
temp.push(x);
})
console.log(temp)
关于javascript - 如何通过使用 Javascript 比较两组数组来获取唯一对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33518506/