Я не уверен, почему вы идете только наполовину со своим синтаксисом литералов объектов (JSON имитирует объявления литералов объектов), но это также создало для вас ошибку.Вы переписываете myObject ["123"] во втором назначении.
Вы могли бы намного проще написать весь этот раздел 1 как:
var myObject = {
"123": {
"A": 123,
"B": 456,
"C": 123,
"D": 456
},
"124": {
"A": 123,
"B": 456
},
"125": {
"A": 123,
"B": 456
}
}
Второй и третий, естьнет такого понятия, как «первое свойство в массиве».Это довольно распространенная ошибка для людей, которые пишут javascript (не только для новых людей, но и для людей, которые пишут его годами).
Ни при каких обстоятельствах что-либо такоелюбая часть объекта когда-либо"Первый" или "второй" или имеет какой-либо порядок в объекте.Это четко указано в спецификации ECMA-262.Поставщики браузеров иногда приспосабливаются к такому поведению, поэтому иногда оно работает.
Это потому, что объекты не являются массивами и никогда не будут.Если вы хотите, чтобы все было в порядке массива, вам нужно использовать массив.Позвольте мне спросить вас, что является «первым» элементом в объекте документа?Ясно, что это глупый вопрос, но он доказывает суть.Объекты не поддерживают порядок, вот что делают массивы.
Так что используйте для этого массив.Квадратные скобки обозначают массив, который не принимает строку в качестве ключа (это то, что делают объекты).Чтобы сделать вещи более запутанными, массивы - это объекты, поэтому они могут действовать как объекты - не путайте это и думайте, что объекты - это массивы.