永发信息网

js如何处理两个json数组去除重复数据,然后合并数组,求大神帮忙解决下

答案:3  悬赏:50  手机版
解决时间 2021-02-11 04:46
例如下面两个json数组,a和b,按照a中的id字段对b进行去重,然后合并到一个json数组,排序方式:数组a中数据保持原顺序,把b数据按照去重后的顺序排在a数据后边。
var a = [
{
"id":"1001",
"name":"张三",
"age":"18",
"address":"北京市朝阳区",
"school":"朝阳区第二中学"
},
{
"id":"1002",
"name":"李四",
"age":"15",
"address":"北京市海淀区",
"school":"海淀区第二中学"
},
{
"id":"1003",
"name":"王五",
"age":"16",
"address":"北京市石景山区",
"school":"石景山区第二中学"
}
];
var b = [
{
"id":"1004",
"name":"小毛",
"age":"18",
"address":"北京市朝阳区",
"school":"朝阳区第二中学"
},
{
"id":"1003",
"name":"王五",
"age":"16",
"address":"北京市石景山区",
"school":"石景山区第二中学"
}
]
去重后结果:
var c = [
{
"id":"1001",
"name":"张三",
"age":"18",
"address":"北京市朝阳区",
"school":"朝阳区第二中学"
},
{
"id":"1002",
"name":"李四",
"age":"15",
"address":"北京市海淀区",
"school":"海淀区第二中学"
},
{
"id":"1003",
"name":"王五",
"age":"16",
"address":"北京市石景山区",
"school":"石景山区第二中学"
},
{
"id":"1004",
"name":"小毛",
"age":"18",
"address":"北京市朝阳区",
"school":"朝阳区第二中学"
}
];
跪求大神帮忙用js解决一下!!!
最佳答案
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)
全部回答
&lt;script&gt;<br>var a = [1,2,3,4,5];<br>var b = [1,2,4,5];<br>alert(tab(a,b));<br>function tab(arr1,arr2){<br>var arr = arr1.concat(arr2);<br>var lastArr = [];<br>for(var i = 0;i&lt;arr.length;i++)<br>{<br>if(! unique(arr[i],lastArr))<br>{<br>lastArr.push(arr[i]);<br>}<br>}<br>return lastArr;<br>}<br>function unique(n,arr)<br>{<br>for(var i=0;i&lt;arr.length;i++)<br>{<br>if(n==arr[i]){<br>return true;<br>}<br>}<br>return false;<br>}<br>&lt;/script&gt;
&lt;script&gt;<br>var a = [1,2,3,4,5];<br>var b = [1,2,4,5];<br>alert(tab(a,b));<br>function tab(arr1,arr2){<br>var arr = arr1.concat(arr2);<br>var lastarr = [];<br>for(var i = 0;i<arr.length;i++)<br>{<br>if(! unique(arr[i],lastarr))<br>{<br>lastarr.push(arr[i]);<br>}<br>}<br>return lastarr;<br>}<br>function unique(n,arr)<br>{<br>for(var i=0;i<arr.length;i++)<br>{<br>if(n==arr[i]){<br>return true;<br>}<br>}<br>return false;<br>}<br>&lt;&#47;script&gt;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
南京市高淳区旅游局怎么去啊,我要去那办事
为什么要朱砂为衣
gtx1050和gtx1050ti有什么区别
深圳市公安局南山分局南山派出所巡防大队在哪
心情不好,想着一首诗,怎么写?有人帮忙吗?
南京市溧水区旅游局地址好找么,我有些事要过
使用加湿器,空气水份过多对人体呼吸道有害吗
金宝贝幼儿园(株洲茶陵县)地址有知道的么?有
下列邮政业务中,实行市场调节价的是()。A.
南京市六合区旅游局地址在哪,我要去那里办事
华为手机6gb+256gb全网通版是什么意思
黄竹坳在什么地方啊,我要过去处理事情
外挂式备胎设计好不好?
具有水火既济关系的是()A.脾胃B.肝胆C.心肾D.
手机屏幕坏了开不了机怎么连接电脑iphone4
推荐资讯
怎样炒银子
根深固本 浇树浇根 造句
分享是一种美德,点赞是一种什么
手机序列号泄漏给别人有危险吗
【舍格伦综合征】舍格伦综合征常见于下列哪类
亿家福超市这个地址在什么地方,我要处理点事
天音艺术培训中心在什么地方啊,我要过去处理
桓台县马桥交管所我想知道这个在什么地方
姚氏盲人推拿足疗地址在哪,我要去那里办事
一个减法算式 被减数、减数、差的和是60,减数
手机不充电的时候重新启动电会少掉,充电的时
金碧皮具护理中心(海陵南路369-7号莲花二区机
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?