例如以下
MIN_OSX_VERSION="10.15"
是否可以重新排序?
[
{'1000': '', '5000': '', '10000': '', 'Name': 'test1', 'Email': 'test1@gmail.com', 'Reason': ''},
{'1000': '', '5000': '', '10000': '', 'Name': 'test2', 'Email': 'test2@gmail.com', 'Reason': ''}
]
答案 0 :(得分:0)
在您的特定情况下,答案是否。尽管ES6(以及现代浏览器标准和实现)保证了对象属性的顺序,但是有一个主要的例外:整数索引。
由于您的对象具有'1000'
,'5000'
和'10000'
之类的键,因此您将无法获得所需的顺序;这些整数索引将始终是第一个。
按以下顺序遍历属性键:
- 首先,键是升序的整数索引。
- 然后,按其添加到对象的顺序,所有其他字符串键。
[...]
大致来说,整数索引是一个字符串,如果将其转换为53位非负整数,则返回的值是相同的。因此:
'10'
和'2'
是整数索引。'02'
不是整数索引。将其覆盖为整数然后返回将导致不同的字符串'2'
。'3.141'
不是整数索引,因为3.141
不是整数。
(Source)
还有一个简短的示例:
const obj = {
"Z": 1,
"B": 2,
"C": 3
};
console.log(obj); //Maintains creation order
const obj2 = {
"A": 1,
"B": 2,
"100": 3
}
console.log(obj2); //Does not maintain creation order
答案 1 :(得分:0)
对象属性的顺序无关紧要。如果这样,您手头的设计不好。最好的方法是重新考虑您的设计。