Rumah > Soal Jawab > teks badan
Seperti yang ditunjukkan dalam gambar, saya ingin membalikkan susunan berdasarkan "1", "99", "23" menjadi
NvTC
Boleh saya bertanya kepada tuan yang tahu?
巴扎黑2017-05-19 10:12:41
天蓬老师2017-05-19 10:12:41
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);
Mula-mula gunakan Object.keys() untuk mendapatkan tatasusunan kunci objek, kemudian gunakan kaedah pengisihan tatasusunan untuk mengisih, kemudian gunakan kaedah foreach tatasusunan untuk menggelung melalui tatasusunan, mengisih data objek asal dan menulisnya pada objek baharu .
伊谢尔伦2017-05-19 10:12:41
var obj = { /* ..略.. */ }
var res = Object.keys(obj).map(e => parseInt(e)).sort().map(e => obj[e]);
淡淡烟草味2017-05-19 10:12:41
Objek JS tidak tertib.
Juga:
{
"11": "aaa"
}
11 bahagian dalam adalah rentetan.
淡淡烟草味2017-05-19 10:12:41
Pemikiran: forin
所有的key
到Array
,排序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]);
}