假设我有一个对象,其中数字为键,字符串为值
var obj = {
'24': 'Sean',
'17': 'Mary',
'88': 'Andrew',
'46': 'Kelvin'
}
有没有一种简单的方法可以根据键的值将数组排序到数组中,结果如下所示:
[88,46,17,24]
答案 0 :(得分:5)
这是一种方法:
var obj = {
'24': 'Sean',
'17': 'Mary',
'88': 'Andrew',
'46': 'Kelvin'
}
var sortedKeys = Object.keys(obj).sort(function(a, b) {
return obj[a].localeCompare(obj[b]);
}).map(Number)
console.log(sortedKeys)
如果您对结果是字符串数组而不是数字感到满意,则省略.map()
部分。
进一步阅读:
或者同样的事情,但ES6 arrow functions:
const sortedKeys = Object.keys(obj)
.sort((a, b) => obj[a].localeCompare(obj[b]))
.map(Number)