Я только что понял, что у меня есть неисправность в моем общем веб-приложении, и он подходит к циклу for, который переупорядочивает мой объект/массив.Для цикла для пар ключ/значение, когда ключ является числовым
Я получаю ассоциативный массив (объект) через AJAX. Я могу проверить его структуру по возвращении, и это правильно. Например:
48 => Value1
50 => Value2
49 => Value3
51 => Value4
Но, когда я прохожу через него, цикл for переупорядочивает объект. Это связано с тем, что ключи-помощники являются числовыми. Они представляют числовые идентификаторы из базы данных. Я не знал, что javascript задушит их и попытается превратить их в основные ключи массива в числовом порядке. Итак, это выплевывается как:
48 => Value1
49 => Value3
50 => Value2
51 => Value4
Как я могу пропустить объект в том порядке, в котором я его строю? Должен ли я строить объект со строками в качестве ключей? Как «ID22», заменяющий 22. Или существует какой-то способ заставить javascript зацикливаться в определенном порядке?
Спасибо! Мэтт
Обычно я использую ["_" + i], поэтому я не допускаю никаких путаниц. Плюс на некоторых языках (php ??), добавляя индекс 49, а затем 51 будет автоматически загружать индекс 50, который я не так рад ... Кроме того, как много раз прокомментировал здесь в SOverflow, ассоциативные массивы не являются правильными технически говорящими в javascript. Если я правильно помню, следует использовать объекты и свойства. – Sebas
Возможный дубликат [Порядок элементов в a для (... in ...) »loop (http://stackoverflow.com/questions/280713/elements-order-in-a-for-in-loop) – Aaron
Спасибо, Себас , На самом деле это объекты. Я просто знал, что объекты были ответом javascript на ассоциативные массивы (ala-языки, такие как php), поэтому я назвал его «объектом» в parens.:-) – Mattaton