gpt4 book ai didi

javascript - Object.keys() 排序标准?

转载 作者:行者123 更新时间:2023-11-29 15:55:23 26 4
gpt4 key购买 nike

Object.keys()的官方排序标准是什么?
这不是关于订购的问题。这是一个超标准的问题。

Kaushal Regmi 写道:

First, the keys that are integer indices in ascending numeric order. Then, all other string keys, in the order in which they were added to the object. Lastly, all symbol keys, in the order in which they were added to the object. https://stackoverflow.com/a/57929312/10617101

到目前为止一切顺利。有一个对象只有整数作为键,在 Object.keys() 返回的数组中将按数字升序保存。如果键只是字母,则 Object.keys() 返回的数组与被调用的 object{} 中的顺序相同。我的问题是:这是 JavaScript 中的通用和全局标准吗?问题是:安全吗?

接下来,还有一个小问题。 (我不使用它)。

var object = { 3a: 'z', 1a: 'x', 2a: 'y' };
for (var i = 0; i < Object.keys(object).length; i++) {
console.log(Object.keys(object)[i]);
}
// Firefox: SyntaxError: identifier starts immediately after numeric literal
// Chrome: Uncaught SyntaxError: Invalid or unexpected token
var object = { a3: 'z', a1: 'x', a2: 'y' };
for (var i = 0; i < Object.keys(object).length; i++) {
console.log(Object.keys(object)[i]);
}
// works on both: [a3, a1, a2]

是的,解决方案是,使用另一种方法创建对象{}:

var object = {};
object["3a"] = 'z';
object["1a"] = 'x';
object["2a"] = 'y';
for (var i = 0; i < Object.keys(object).length; i++) {
console.log(Object.keys(object)[i]);
}
// [3a, 1a, 2a]

编辑:特殊问题是对象键作为引号中的整数:

var object = { "3": "z", "1": "x", "2": "y" };
for (var i = 0; i < Object.keys(object).length; i++) {
console.log(Object.keys(object)[i]);
} // [1, 2, 3]

通常“1”是一个字符串,1 是一个整数,但作为对象键,“1”仍然是一个整数。 (但不是通过对象键的数学计算)。
顺便说一句,因此我的问题是,订单中的官方标准是什么。这有多安全。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com