对象进行排序

图片描述

如图 我想根据 “1”,“99”,“23” 进行倒序;变成

VNvTC

请问那个大神知道 谢谢

阅读 2.8k
4 个回答

Object中,以键=>值对存放数据,不存在顺序问题

  1 var obj = {
  2     '1':{
  3         val:'red'
  4      },
  5      '99':{
  6         val:'yellow'
  7      },
  8      '37':{
  9         val:'blue'
 10      }
 11 };
 12
 13 function selirizeData(obj){
 14     var keys = Object.keys(obj).sort(function(a,b){
 15         return a-b;
 16     });
 17     var newObj = {};
 18     keys.forEach(function(val){
 19         newObj[val] = obj[val];
 20     });
 21     console.log(keys);
 22     console.log(newObj);
 23 }
 24 selirizeData(obj);

先用Object.keys()获取对象的键数组,然后用数组的排序方法进行排序,再用数组的foreach方法循环下数组,将原对象的数据排序后写入到新的对象中。

var obj = { /* ..略.. */ }

var res = Object.keys(obj).map(e => parseInt(e)).sort().map(e => obj[e]);

clipboard.png

思路:forin所有的keyArray,排序Array.sort(),遍历Array,按顺序取值obj[key]

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