Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   последовательность элементов в объекте (https://javascript.ru/forum/css-html/55149-posledovatelnost-ehlementov-v-obekte.html)

syegorius 15.04.2015 20:36

последовательность элементов в объекте
 
доброе время суток

столкнулся с такой проблемой в разных браузера элементы в объектах находятся в разных последовательностях

в мозиле они отображаются в той последовательности в которой я х туда добавил, а в хроме в алфавитном порядке.

подскажите возможно ли каким-то образом указать в всем браузерам что элементы объекта должны отображаться именно в том порядке в каком я их туда добавил?

заранее благодарен за помощь!

рони 15.04.2015 20:41

syegorius,
никак

Safort 15.04.2015 20:46

Нет. Но можно сделать грязный хак с использованием доп. переменной.

var obj = {};
var arr = [];

arr.push('key1');
obj['key1'] = 'значение';

arr.push('key2');
obj['key2'] = 'значение2';

arr.forEach(function(item) {
  console.log(obj[item]); // выводим по порядку элементы
});


или взять все ключи объекта в виде массива с помощью Object.keys(obj) и использовать https://developer.mozilla.org/ru/doc...cts/Array/sort со своим алгоритмом.

theKingOfJava 15.04.2015 20:48

syegorius,
легко
o={b: 1, a: 1}
for(i in o) console.log(i, o[i])

theKingOfJava 15.04.2015 20:54

рони,
Я сейчас в мозиле, и у меня работает. ЧЯДНТ?

рони 15.04.2015 20:56

theKingOfJava,
ок

theKingOfJava 15.04.2015 20:57

syegorius,
И, кстати,
Цитата:

Сообщение от syegorius
находятся

Цитата:

Сообщение от syegorius
отображаются

это сильно разные вещи. Не путайте.

syegorius 15.04.2015 20:58

очень странно...

да в хроме все выдало как мне хотелось бы...

значит хром выводит в алфавитном порядке числовые индексы

var o={30: 1, 1: 2}
for(i in o) console.log(i, o[i])


я просто не знаю как вставить кнопку запустить js

theKingOfJava 15.04.2015 21:01

Цитата:

Сообщение от syegorius
числовые индексы

Какие нахер числовые индексы, их нет в цикле for in. Там ключ/значение

рони 15.04.2015 21:01

Цитата:

Сообщение от syegorius
значит хром выводит в алфавитном порядке числовые индексы

ключи это строки -- и метод for(i in o) не подходит для вывода который бы
Цитата:

Сообщение от syegorius
что элементы объекта должны отображаться именно в том порядке в каком я их туда добавил?

смотрите код Safort,


Часовой пояс GMT +3, время: 01:40.