为了账号安全,请及时绑定邮箱和手机立即绑定

萌新求教!合并2个数组里的对象(注意id值要对应上, 比如大嫂18岁), 并且要以age排序求指导!

萌新求教!合并2个数组里的对象(注意id值要对应上, 比如大嫂18岁), 并且要以age排序求指导!

繁星点点滴滴 2019-06-09 10:52:29
//合并2个数组里的对象(注意id值要对应上,比如大嫂18岁),并且要以age排序letarr=[{"id":1,"text":"大嫂"},{"id":3,"text":"三嫂"},{"id":2,"text":"二嫂"}];letbrr=[{"id":1,"age":30},{"id":2,"age":23},{"id":3,"age":17}];这道题如何更好得方法除了for循环
查看完整描述

2 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

如果单纯循环遍历,复杂度就是O(2),可以考虑先遍历一次,把他们都存在一个key的map里面,最后再转化
constmap={}
arr.forEach(e=>{
map[e.id]={text:e.text};
})
brr.forEach(e=>{
map[String(e.id)].age=e.age;
})
//此时存的的数据应该是
//map={
//1:{text:'大嫂',age:18}
//}
constresult=Object.keys(map).map(key=>{
return{
id:key,
...map[key]
}
}).sort((a,b)=>a.age-b.age)
                            
查看完整回答
反对 回复 2019-06-09
  • 2 回答
  • 0 关注
  • 399 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信