|
|
1
20
不。javascript对象属性没有内在顺序。真是太幸运了
如果要订购,则必须使用数组:
|
|
|
2
2
我想您会发现唯一可靠的方法是使用数组而不是关联数组,例如:
|
|
|
3
0
@bobince是对的,对象不保留任何排序元数据。 在我的例子中,重构到数组是没有意义的,所以我提交了另一个解决方案:创建一个按顺序排列的数组,并使用它按顺序映射对象属性:
输出:
|
|
|
4
-2
当对象属性标识符是字母字符串时,我没有得到您的结果。IE8、FF5、Chrome12和Opera9.8都保持了创作顺序,即 键:aa值:23键:bb值:12 当标识符是数字时,结果才与您的匹配: IE8,FF5-->键:23值:aa键:12值:bb Opera,Chrome-->键:12值:bb键:23值:aa Opera和Chrome的存储顺序与创建顺序相反,因为12小于23,所以如果您使用它,请说:
然后您将得到这四个浏览器的结果: 键:2值:aa键:12值:bb 因此,正是数字作为标识符的使用导致了这种差异。如果标识符是按字母顺序排列的,那么对于4个浏览器,创建和存储的属性顺序都是相同的。尽管ecma规则规定存储顺序不必与创建顺序相关,但这一点仍然存在。 如果字符串标识符是数字,例如“23”和“12”,则Opera和Chrome将它们视为数字,并再次颠倒创建顺序,因此也不允许使用该类型。23A型和A23型都可以。 要回答您的问题,请使用非数字字符串标识符,4个浏览器(可能是所有浏览器)的行为都是相同的。 |
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 1 年前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 1 年前 |