javascript - 物件進行排序
天蓬老师
天蓬老师 2017-05-19 10:10:41
0
5
488

#如圖 我想根據 “1”,“99”,“23” 進行倒序;變成

NvTC

請問那位大神知道 謝謝

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(5)
巴扎黑

Object中,以鍵=>值對存放數據,不存在順序問題

Peter_Zhu
  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方法循環下數組,將原始物件的資料排序後寫入到新的物件中。

伊谢尔伦

雷雷

淡淡烟草味

JS的物件是 無序的。
另外:
{

"11": "aaa"

}
裡面的 11 是字串。

淡淡烟草味

思路: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]);
    }
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板