Показать сообщение отдельно
  #37 (permalink)  
Старый 13.08.2009, 14:09
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от hogart
в питоне for..in обходит список (или, скорее итератор). в JS for..in обходит словарь
Python:

for (key, value) in {'a': 1, 'b': 2}.items():
    print(key, value) # a 1, b 2

for key in {'a': 1, 'b': 2}:
    print(key); # a, b


JS (1.7):

for (var [key, value] in {a: 1, b: 2}) {
    alert([key, value]); // a,1 ; b,2
}

for (var key in {a: 1, b: 2}) {
    alert(key); // a; b
}


for / for each ... in равно так же может обходить и массив, не только объект (см., опять же, array comprehensions).

var a = [1, 2];
for (var key in a) {
    alert([key, a[key]]); // 0,1; 1,2
}


Сообщение от hogart
И, чисто практическое соображение: массив в JS экономичнее обходится через старый добрый «сишный» for
Ага, т.к. не анализируется цепь прототипов, но это уже в сторону преимуществ, а не мега-отличий
__________________
Тонкости ECMAScript

Последний раз редактировалось Dmitry A. Soshnikov, 13.08.2009 в 14:19.
Ответить с цитированием