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
},
....
]
该怎么办?
展开
 我来答
黎凡s
2019-03-22 · 穷则独善其身。。。。。。
黎凡s
采纳数:197 获赞数:364

向TA提问 私信TA
展开全部
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);
草原上之狼
高粉答主

2019-03-13 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.9万
采纳率:93%
帮助的人:4047万
展开全部
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的过滤掉了,没有追加进去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
硅谷少年
2019-03-22 · TA获得超过7556个赞
知道大有可为答主
回答量:7116
采纳率:82%
帮助的人:1429万
展开全部
数量少的话可以这样写代码搞定,大量这种需求,可以先把json写mogoDB,A和B各一张表,再把两个表以ID为主键union即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式