Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 18.11.2011, 18:00
UDN UDN вне форума
Аспирант
Отправить личное сообщение для UDN Посмотреть профиль Найти все сообщения от UDN
 
Регистрация: 18.06.2009
Сообщений: 55

Проще записать
var arr = {555:'Первый',777: 'Второй',666: 'Третий'};
	for (var i in arr) {
        alert(i + ':' + arr[i] + '; ');}

Зачем создавать лишении свойства,
объекты используют в коллекции также имена и свойства.

кто муже поведение IE можно включить меньшей версии из тела документа.

Последний раз редактировалось UDN, 18.11.2011 в 18:08.
Ответить с цитированием
  #12 (permalink)  
Старый 18.11.2011, 19:00
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

UDN, и наступите на грабли какого-нибудь IE13, который будет, например, вообще каждый раз в случайном порядке выводить.

Уже было сказано, что на какой-либо порядок при переборе for-in рассчитывать не стоит.
Ответить с цитированием
  #13 (permalink)  
Старый 19.11.2011, 03:57
UDN UDN вне форума
Аспирант
Отправить личное сообщение для UDN Посмотреть профиль Найти все сообщения от UDN
 
Регистрация: 18.06.2009
Сообщений: 55

Сообщение от B@rmaley.e><e
наступите на грабли какого-нибудь IE13
Вы доживите с начало до IE13 и что за бред со случайным порядком
Какай идиот при создание ПО станет создавать еще и генерацию рандомных ссылок на элементы коллекции объекта.

Когда практически в каждой книжке при работе с элементами коллекции рекомендуется по возможности заменять
конструкцию
for (var i;i<100;i++)
на for (elem in object) //для каждого элемента в объекте
Посмотрите оптимизацию циклов работы с объектами, можно не только javascript, но и С++, С#,Delphi, VB?, *.Net, Java

Прекращайте свои сумасшедшие предположения, а то можно подумать, что на этом форуме только флудом и тролем занимаются.

Столько умных:
работают с галереями, документами большого объема, текстом
используют различного рода обертки,но по прежнему используют конкатенацию строк заместо document.write("a_1","a_2","a_n",...a_200)
Не знают, что при добавление или перемещение визуальных объектов(причем каждого), происходит обновление все
документа.
window.offscreenBuffering
Если этот режим включен, то отображение объектов производится в фоновом режиме, а затем сформированное изображение появляется на экране.
offscreenBuffering = true; // включить насильственную буферизацию
так же разницу и особенности при работе с [] и {}
Аргументы нужно подкреплять, хотя с аргументами от сороки на хвосте куда уж вам..

Последний раз редактировалось UDN, 19.11.2011 в 04:56.
Ответить с цитированием
  #14 (permalink)  
Старый 19.11.2011, 11:27
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от UDN Посмотреть сообщение
Какай идиот при создание ПО станет создавать
Наверное тот же что в IE9 закругленные углы с градиентной заливкой создал, посмотри "приятно" удивишся

Ты видно ещё не нашёл свои грабли.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #15 (permalink)  
Старый 19.11.2011, 13:09
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от UDN
Когда практически в каждой книжке при работе с элементами коллекции рекомендуется по возможности заменять
конструкцию
for (var i;i<100;i++)
на for (elem in object) //для каждого элемента в объекте
Дуглас Крокфорд не так давно заявлял, что видел только одну хорошую книгу по JS. И та — javascript: The Definitive Guide.
То, что авторы практически каждой книги не читали стандарт, не делает их специалистами, а книжки хорошими.

Сообщение от UDN
document.write("a_1","a_2","a_n",...a_200)
Да более того, я даже метод такой не использовал уже лет 5.
Сообщение от UDN
Аргументы нужно подкреплять, хотя с аргументами от сороки на хвосте куда уж вам..
Как два пальца об асфальт: стандарт, п. 12.6.4:
Цитата:
Механизм обхода (перечисления) свойств (шаг 5 первого алгоритма, шаг 6 второго) зависит от конкретной реализации.
Сообщение от UDN
Какай идиот при создание ПО станет создавать еще и генерацию рандомных ссылок на элементы коллекции объекта.
Вы про алгоритмы что-нибудь слышали? Рандомизированные, например.
Сообщение от UDN
Посмотрите оптимизацию циклов работы с объектами, можно не только javascript, но и С++, С#,Delphi, VB?, *.Net, Java
Использовать for-in — офигенная оптимизация. Особенно с учётом того, что все видимые свойства из всей цепочки прототипов будут проитерированы.
Вы когда на другие языки ссылаетесь, учитывайте особенности текущего, что ли.
Ответить с цитированием
  #16 (permalink)  
Старый 19.11.2011, 21:00
UDN UDN вне форума
Аспирант
Отправить личное сообщение для UDN Посмотреть профиль Найти все сообщения от UDN
 
Регистрация: 18.06.2009
Сообщений: 55

Ну во первых, давайте не будем смешивать понятия [] и {}
это не одно и тоже.
В массивах нет различия в записи индекса.
var arr=[];
arr['1'] = "Первый";
arr['5'] = "Второй";
arr['10'] = "Третий";
alert([arr])

и
var arr=[];
arr[1] = "Первый";
arr[5] = "Второй";
arr[10] = "Третий";
alert([arr])

Во вторых конструкция for, это все лишь более удобная форма записи циклов.
for(var j=0,s="";j<5;j++){s += j + " "};
alert(s);

и опа парсится в
/**for (;;)
аргументы:
1-ый	- инициализация переменных
2-ой	- условие выхода из цикла
3-ий	- изменение счетчика
*/

var s="",j = 0;           //1-ый	- инициализация переменных
for (;;){
if (j < 5){                 //2-ой	- условие выхода из цикла
s += j + " ";
j++;}                      //3-ий	- изменение счетчика
 else {break;}
}
alert(s);


Сообщение от B@rmaley.e><e
То, что авторы практически каждой книги не читали стандарт, не делает их специалистами, а книжки хорошими.
Интересные у вас убеждения кроме Дуглас Крокфорд, книги пишут дилетанты))))

Сообщение от B@rmaley.e><e
Использовать for-in — офигенная оптимизация. Особенно с учётом того, что все видимые свойства из всей цепочки прототипов будут проитерированы.
У вас больное воображение, у меня и в мыслях не было так подумать.
for-in - передача по ссылке на объект т.е. Obj[i], а не создание копии с теми же свойствами.
Термины живут еще с Assembler-ов.
К тому же структуру алгоритмов можно посмотреть, в материалах по дизассемблированию и отладке кода.

Так же можно не мало взять с сайтов подобных http://140byt.es/

Последний раз редактировалось UDN, 19.11.2011 в 21:30.
Ответить с цитированием
  #17 (permalink)  
Старый 19.11.2011, 21:30
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

UDN, убейся уже. Хватить херню постить.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #18 (permalink)  
Старый 20.11.2011, 05:45
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от UDN
for-in - передача по ссылке на объект т.е. Obj[i], а не создание копии с теми же свойствами.
И? При переборе через for(var i = 0; i < length; ++i), скажу Вам по секрету, копирования тоже не будет. Более того, добиться копирования при работе с объектами в JS весьма сложно.
Сообщение от UDN
В массивах нет различия в записи индекса.
А в объектах они есть?
var a = {};
a[1] = 5;
alert(a['1']); // Внезапно!
Более того, я не понимаю, как вообще связано то, о чём Вы вещаете, с порядком перебора ключей.
Ответить с цитированием
  #19 (permalink)  
Старый 20.11.2011, 07:12
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от UDN
Ну во первых, давайте не будем смешивать понятия [] и {}
это не одно и тоже.
ты не поверишь) В js Массив - это тот же объект, с несколькими геттерами/сеттерами и другим прототипом. Другой прототип не меняет "механику" работы, и парочка геттеров/сеттеров в общем-то тоже.

Последний раз редактировалось Riim, 22.11.2011 в 16:54.
Ответить с цитированием
  #20 (permalink)  
Старый 21.11.2011, 16:10
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от UDN
Когда практически в каждой книжке при работе с элементами коллекции рекомендуется по возможности заменять
конструкцию
for (var i;i<100;i++)
на for (elem in object) //для каждого элемента в объекте
Это плохие книги, не читайте их.
http://alljs.ru/articles/array/iteration


Сообщение от Riim
Массив - это тот же объект, с несколькими геттерами/сеттерами и другим прототипом.
Если быть точным, то массивах переопределён только внутренний метод [[Set]], который ведёт себя по другому для числовых имён свойств и для length, гетеры все те же.


По теме поста: если важна последовательность, то только массив. Хэш по определению не обеспечивает порядок.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск