按键升序对对象进行排序

vco*_*ekx 2 javascript node.js

我目前有一个这样的对象

let obj = {
    "5": "961131",
    "8": "961127",
    "5,5": "961107",
    "7": "961103",
    "9.5": "961115"
}
Run Code Online (Sandbox Code Playgroud)

是否可以按其键升序对其进行排序?我想要实现的结果是:

obj = {
    "5": "961131",
    "5,5": "961107",
    "7": "961103",
    "8": "961127",
    "9.5": "961115"
}
Run Code Online (Sandbox Code Playgroud)

它可能涉及创建一个我不介意的新对象,只是不知道如何完成此操作

Gui*_*leW 5

你不能。对象键不可排序,并且您无法预测每个浏览器将如何迭代对象。

但是您可以像这样使用数组作为索引。请记住格式化您的密钥。如果它是一个字符串,只需使用.sort(). 否则你可能应该将你的密钥与.sort((a, b) => parseFloat(a) - parseFloat(b));

let obj = {
    "5": "961131",
    "8": "961127",
    "5,5": "961107",
    "7": "961103",
    "9.5": "961115"
}

let index = Object.keys(obj).sort()

// iterate method
index.forEach((key) => {
  console.log(key, obj[key])
})

// or array of sorted object
let sortedArrayOfObject = index.map((v) => {
  return {key: v, value: obj[v]}
})
console.log(sortedArrayOfObject)
Run Code Online (Sandbox Code Playgroud)