如何在JavaScript中按键对对象排序
我的目标如下:如何在JavaScript中按键对对象排序,javascript,Javascript,我的目标如下: Object { WK23: 12.52573059875292, WK22: 122.2625975869411, WK21: 78.48714311048059, WK20: 87.14214810403018, WK26: 78.52625051674245, WK25: 77.64480983891451, WK24: 67.42158281711342, WK2: 78.420343898902, WK3: 77.91344340707354, WK4: 77.2904
Object { WK23: 12.52573059875292, WK22: 122.2625975869411, WK21:
78.48714311048059, WK20: 87.14214810403018, WK26: 78.52625051674245, WK25: 77.64480983891451, WK24: 67.42158281711342, WK2:
78.420343898902, WK3: 77.91344340707354, WK4: 77.29048185059888 }
是否可以按键排序,从WK1到WK100?
如何在JavaScript中实现这一点
提前谢谢,不,你不能。对象键未排序。如果要对对象中的条目进行排序,必须将其转换为数组
var obj = {"WK23": 12.52573059875292, "WK22": 122.2625975869411};
var result = Object.keys(obj).map(function(key) {
return [key, obj[key]];
});
// the result Array can then be sorted...
// result = [["WK23": 12.52573059875292], ["WK22": 122.2625975869411]]
var sorted = result.sort(function(a,b){
var num_a = parseInt(a[0].replace("WK", ""));
var num_b = parseInt(b[0].replace("WK", ""));
return num_a > num_b;
});
// sorted = [["WK22": 122.2625975869411], ["WK23": 12.52573059875292]]
尝试此操作,可以更改顺序并指定给不同的对象
var无序={WK23:12.52573059875292,WK22:122.2625975869411,WK21:78.48714311048059,WK20:87.14214810403018,WK26:78.5262501674245,WK25:77.6448098391451,WK24:67.4215828711342,WK2:78.420343898902,WK3:77.91344340707354,WK4:77.29048185059888}}
log(JSON.stringify(无序));
常量有序={};
对象。键(无序)。排序(函数(a,b){
var a=a.分割(“WK”)[1];
var b=b.分割(“WK”)[1];
返回a-b
}).forEach(功能(键){
有序[键]=无序[键];
});
log(JSON.stringify(ordered))代码>给你
const sample = { WK23: 12.52573059875292, WK22: 122.2625975869411, WK21:
78.48714311048059, WK20: 87.14214810403018, WK26: 78.52625051674245, WK25: 77.64480983891451, WK24: 67.42158281711342, WK2:
78.420343898902, WK3: 77.91344340707354, WK4: 77.29048185059888 };
const sorted = Object.keys(sample).sort().map(key => sample[key]);
请检查此链接对象,根据定义,在Javascript中没有排序。如果你想让它有序,你应该把它转换成一个数组,让伙计们来寻找答案。我是JS的初学者,如果我把它转换成数组,我能回到object吗?你有什么例子吗?感谢可能的副本