#如圖 我想根據 “1”,“99”,“23” 進行倒序;變成
NvTC
請問那位大神知道 謝謝
欢迎选择我的课程,让我们一起见证您的进步~~
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所有的key到Array,排序Array.sort(),遍历Array,按顺序取值obj[key]
forin
key
Array
Array.sort()
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]); }
Object中,以鍵=>值對存放數據,不存在順序問題
先用Object.keys()取得物件的鍵數組,然後用數組的排序方法進行排序,再用數組的foreach方法循環下數組,將原始物件的資料排序後寫入到新的物件中。
雷雷
JS的物件是 無序的。
另外:
{
}
裡面的 11 是字串。
思路:
forin
所有的key
到Array
,排序Array.sort()
,遍历Array
,按顺序取值obj[key]