数组排序的问题

如何将b中的元素按照a中id的顺序进行排序?感觉没有思路

var a = [5,7,1,4,3];
var b = [
    {id: 4},
    {id: 1},
    {id: 5},
    {id: 3},
    {id: 7}
];
阅读 2.4k
4 个回答
const a = [5, 7, 1, 4, 3];
const b = [
    {id: 4},
    {id: 1},
    {id: 5},
    {id: 3},
    {id: 7}
];

const res = a.map(id => b.find(item => item.id === id))
function order(a, b){
    var result = [];
    for(i in a){
        for(item of b){
            if(item['id'] === a[i] ){
                result[i] = item;
                break;
            }
        }
    }
    
    return result;
}

还要两次循环,干嘛那么麻烦了
var a = [5,7,1,4,3];

var b = [
    {id: 4},
    {id: 1},
    {id: 5},
    {id: 3},
    {id: 7}
];
var c = {};
var d = [];
for(var i = 0;i < a.length;i++){
   // console.log(a[i])
   c = {
    id : a[i]
   }
   d.push(c)
}
console.log(d)

如果你的b只是{id:num}这种格式可以用@风灵无畏 的方法

var obj = {};
var arr = [];
for(var i=0;i<b.length;i++){
  obj[b[i].id] = b[i];
}
for(var i=0;i<a.length;i++){
 arr.push(obj[a[i]]); 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题