关于js数组排序的问题

如何将 data 按照 arr 的顺序,将他排序,

其中 arr 是 data 的 id

图片描述

阅读 2.7k
3 个回答
var data = [{
    name: 'xxx',
    id: '123'
}, {
    name: 'xxx',
    id: '456'
}, {
    name: 'xxx',
    id: 'abc'
}]
var arr = ['123', 'abc', '456']

var result = arr.reduce(function(res, item) {
    var finditem = data.find(function(dataItem) {
        return dataItem.id === item;
    });
    res.push(JSON.parse(JSON.stringify(finditem)));
    return res
}, [])
console.log(result)
var data = [
  {name:'xxx',id:'123'},
  {name:'xxx',id:'456'},
  {name:'xxx',id:'abc'}
]
var arr = ['123','abc','456']
var newData = []
for(i=0;i<arr.length;i++){
  for(j=0;j<arr.length;j++){
    if(arr[i] == data[j].id){
      newData.push(data[j])
    }
  }
}
data.sort(function(v1,v2){
  return arr.indexOf(v1.id)-arr.indexOf(v2.id);
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题