如图 我想根据 “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方法循环下数组,将原对象的数据排序后写入到新的对象中。
var obj = { /* ..略.. */ }
var res = Object.keys(obj).map(e => parseInt(e)).sort().map(e => obj[e]);
思路: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]);
}
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
Object中,以键=>值对存放数据,不存在顺序问题