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

//合并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循环
繁星点点滴滴
浏览 400回答 2
2回答

慕姐4208626

如果单纯循环遍历,复杂度就是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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript