2个json数据,如何把相同的数组合并成一个数组?
A=[{"id":1,"name":"","sex":"","age":""},....]B=[{"id":1,"adds":"","score":"","state":...
A=[
{
"id": 1,
"name": "",
"sex": "",
"age": ""
},
....
]
B=[
{
"id": 1,
"adds": "",
"score": "",
"state": 0
},
....
]
如上代码,我想要的数组
C=[
{
"id": 1,
"name": "",
"sex": "",
"age": "",
"adds": "",
"score": "",
"state": 0
},
....
]
该怎么办? 展开
{
"id": 1,
"name": "",
"sex": "",
"age": ""
},
....
]
B=[
{
"id": 1,
"adds": "",
"score": "",
"state": 0
},
....
]
如上代码,我想要的数组
C=[
{
"id": 1,
"name": "",
"sex": "",
"age": "",
"adds": "",
"score": "",
"state": 0
},
....
]
该怎么办? 展开
展开全部
var C = [];
var temp1,temp2;
//确保数据多的数组在最外层循环,防止丢失数据
if(A.length>=B.length){
temp1=A;
temp2=B;
}else{
temp1=B;
temp2=A;
}
for(var i=0;i<temp1.length;i++){
if(temp2.length<=0){
C.push(temp1[i]);
}else{
for(var j=0;j<temp2.length;j++){
if(temp1[i].id==temp2[j].id){
var temp=Object.assign({},temp1[i],temp2[j]);//合并对象
C.push(temp);//放入数组
temp2.splice(j,1);//删除本次合并的对象,增加性能
break;
}
}
}
}
console.log(C);
展开全部
var c = a.concat(b),//合并成一个数组 temp = {},//用于id判断重复 result = [];//最后的新数组 //遍历c数组,将每个item.id在temp中是否存在值做判断,如不存在则对应的item赋值给新数组,并将temp中item.id对应的key赋值,下次对相同值做判断时便不会走此分支,达到判断重复值的目的; c.map((item,index)=>{ if(!temp[item.id]){ result.push(item); temp[item.id] = true } }) console.log(result)
追问
好像不行哎,temp把重复id的过滤掉了,没有追加进去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数量少的话可以这样写代码搞定,大量这种需求,可以先把json写mogoDB,A和B各一张表,再把两个表以ID为主键union即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询