关于js数组排序的问题

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

其中 arr 是 data 的 id

图片描述

阅读 1.2k
评论
    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])
          }
        }
      }
        • 413
        data.sort(function(v1,v2){
          return arr.indexOf(v1.id)-arr.indexOf(v2.id);
        });
          撰写回答

          登录后参与交流、获取后续更新提醒

          相似问题
          推荐文章