Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中按键对对象排序_Javascript - Fatal编程技术网

如何在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吗?你有什么例子吗?感谢可能的副本