关于js数组排序的问题

aldst
  • 79

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

其中 arr 是 data 的 id

图片描述

回复
阅读 1.3k
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);
});
你知道吗?

宣传栏