javascript JSON对象中是否存在整数键和字符串键的排序?

javascript JSON对象中是否存在整数键和字符串键的排序?,javascript,arrays,json,string,integer,Javascript,Arrays,Json,String,Integer,我尝试了不同的对象,发现Javascript JSON对象中有一点奇怪的行为。如果有人能详细说明,那就太好了 例如: var bat={3:“FA”,7:“WER”,1:“JWRT”,d:“EWR”,a:“bA”,8:“ADB”} 对于这个Json对象,当它将整数作为键时(即使将整数括在双引号中也有效),当您尝试使用object.keys()或简单地打印bat来获取键时,可以看到以下顺序 {1:“JWRT”,3:“FA”,7:“WER”,8:“ADB”,d:“EWR”,a:“bA”} 当键是字符

我尝试了不同的对象,发现Javascript JSON对象中有一点奇怪的行为。如果有人能详细说明,那就太好了

例如:

var bat={3:“FA”,7:“WER”,1:“JWRT”,d:“EWR”,a:“bA”,8:“ADB”}

对于这个Json对象,当它将整数作为键时(即使将整数括在双引号中也有效),当您尝试使用object.keys()或简单地打印bat来获取键时,可以看到以下顺序

{1:“JWRT”,3:“FA”,7:“WER”,8:“ADB”,d:“EWR”,a:“bA”}

当键是字符串时,Json对象的排序不会自动发生(即使它是一个只包含字符串键的Json对象,或者具有整数键和字符串键)

在同一Json对象中有字符串键和整数键的情况下,整数到达键数组的开头


这种行为有什么原因吗?提前感谢…

对象键的顺序永远无法保证。即使使用数字键,它们在内部也是字符串

从:

4.3.3对象

对象是类型对象的成员它是一个无序的属性集合,每个属性都包含一个基元 值、对象或函数。存储在函数的属性中的函数 对象称为方法


这不是JSON,JSON中的键必须是字符串。在使用“JSON对象”的地方,实际上应该只写“对象”。对象的键不遵循任何顺序。为什么?因为这毫无意义。如果需要在这些键上循环,请使用函数
Object.keys
,然后执行函数
sort
。标记为重复<代码>:)
是的,正确,这就是我想要理解的。所以这些数字在内部是字符串,接下来的问题是,它们是如何单独对“整数字符串”排序的。有什么想法吗?正如我所说的,没有任何特定订单的保证,你得到的订单可能不是我得到的订单。它是特定于实现的。试图解释为什么顺序是这样是毫无意义的。如果顺序对你很重要,试试地图。