我有对象包含这样的数据
const testData = {
"11": {
"data": {
"firstName": "firstName",
"lastName": "lastName"
}
},
"12": {
"data": {
"firstName": "firstName",
"lastName": "lastName"
}
},
"00": {
"data": {
"firstName": "firstName",
"lastName": "lastName"
}
},
"01": {
"data": {
"firstName": "firstName",
"lastName": "lastName"
}
},
"final": {
"data": {
"firstName": "firstName",
"lastName": "lastName"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想按对象键对数据进行排序 00, 01, 11, 12, final
我已经尝试过这种方法,但是我无法达到我想要的效果。任何想法都会感激不尽?
sorted = Object.keys(testData).sort().reduce((acc, key) => ({
...acc, [key]: testData[key]
}), {})
console.log(sorted)
Run Code Online (Sandbox Code Playgroud)
你不能。JavaScript对象键的已定义迭代顺序如下:
"11",但不 包括)的字符串"01",然后...如您所见,无论插入顺序如何,数字键始终将始终以迭代顺序显示,并且始终以其数字顺序显示。
在你的榜样,"11"并"12"会永远结束了第一,不管你做什么。
通常,明智的做法是依靠对象的顺序(本质上是通过键访问的无序词典)。如果顺序很重要,则应该使用数组。或者,您可以使用Map。
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |