假设我有一个对象,其中数字作为键,字符串作为值
var obj = {
'24': 'Sean',
'17': 'Mary',
'88': 'Andrew',
'46': 'Kelvin'
}
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以根据键的值将键排序到数组中,结果将如下所示:
[88,46,17,24]
Run Code Online (Sandbox Code Playgroud)
这是一种实现方法:
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)Run Code Online (Sandbox Code Playgroud)
.map()如果您希望结果是字符串数组而不是数字,请省略该部分。
进一步阅读:
还是相同的东西,但是带有ES6箭头功能:
const sortedKeys = Object.keys(obj)
.sort((a, b) => obj[a].localeCompare(obj[b]))
.map(Number)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
389 次 |
| 最近记录: |