Привет, ребята. Такой вопрос. В Хроме есть проблема — он сортирует свойства в хеше. Например,
var hash = {
1 : 'один',
3: 'три',
2: 'два'
};
for (var i in hash) alert(hash[i]);
Выведет «один, два, три», хотя ожидается совершенно другой порядок.
Другой пример —
[].associate
из MooTools:
Array.prototype.associate = function(keys){
var obj = {}, length = Math.min(this.length, keys.length);
for (var i = 0; i < length; i++) obj[keys[i]] = this[i];
return obj;
};
var hash = ['one', 'three', 'two'].associate(['first','3','2']);
var string = '';
for (var i in hash) string += i + ':' + hash[i] + '; ';
alert(string);
// Chrome: 2:two; 3:three; first:one;
// Other : first:one; 3:three; 2:two;
Я считаю такое поведение совершенно нелогичным и, как минимум, не кроссбраузерным и потому хотелось бы найти способ заставить Хром не заниматься самодеятельностью и сортировать свойства в таком порядке, который я задаю, а не алфавитном.
Есть идеи, как это сделать?