2个json数据,如何把相同的数组合并成一个数组?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2个json数据,如何把相同的数组合并成一个数组?相关的知识,希望对你有一定的参考价值。
A=[
"id": 1,
"name": "",
"sex": "",
"age": ""
,
....
]
B=[
"id": 1,
"adds": "",
"score": "",
"state": 0
,
....
]
如上代码,我想要的数组
C=[
"id": 1,
"name": "",
"sex": "",
"age": "",
"adds": "",
"score": "",
"state": 0
,
....
]
该怎么办?
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); 参考技术A 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的过滤掉了,没有追加进去
参考技术B 数量少的话可以这样写代码搞定,大量这种需求,可以先把json写mogoDB,A和B各一张表,再把两个表以ID为主键union即可。C练习两个已经从小到大的数组合并成为一个从小到大排序的数组
两个已经从小到大的数组合并成为一个从小到大排序的数组
1 #include<stdio.h> 2 int main() 3 { 4 int m,n,i,j,k,tem=0; 5 printf("这两个数组分别有多少个数:\n"); 6 scanf("%d%d",&m,&n); 7 int a[m],b[n],c[m+n]; 8 printf("从小到大输入%d个数:\n",m); 9 for(i=0;i<m;i++) 10 scanf("%d",&a[i]); 11 printf("从小到大输入%d个数:\n",n); 12 for(i=0;i<n;i++) 13 scanf("%d",&b[i]); 14 i=0;j=0;k=0; 15 do 16 { 17 if(a[i]==b[j]) 18 { 19 c[k]=a[i]; 20 k++; 21 c[k]=b[j]; 22 k++;i++;j++; 23 } 24 else if (a[i]>b[j]) 25 { 26 c[k]=b[j]; 27 j++;k++; 28 } 29 else 30 { 31 c[k]=a[i]; 32 i++; 33 k++; 34 } 35 } 36 while((i!=m)&&(j!=n)); 37 if(i==m) 38 for(;j<n;j++,k++) 39 c[k]=b[j]; 40 if(j==n) 41 for(;i<m;i++,k++) 42 c[k]=a[i]; 43 printf("结果是:\n"); 44 for (;tem<m+n;tem++) 45 printf("%d ",c[tem]); 46 printf("\n"); 47 return 0; 48 } 49 测试运行: 50 [email protected]:~/桌面$ ./2 51 这两个数组分别有多少个数: 52 6 4 53 从小到大输入6个数: 54 6 9 11 13 13 13 55 从小到大输入4个数: 56 1 13 13 19 57 结果是: 58 1 6 9 11 13 13 13 13 13 19 59 [email protected]:~/桌面$
以上是关于2个json数据,如何把相同的数组合并成一个数组?的主要内容,如果未能解决你的问题,请参考以下文章