//合并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)
添加回答
举报
0/150
提交
取消