Цикл for
используется для двух основных целей:
Python | Javascript |
---|---|
Выполнить блок заданное число раз # | |
i = 0 i = 1 i = 2 i = 3 |
i = 0 i = 1 i = 2 i = 3 |
Обработать все элементы списка / массива # | |
1 2 10 |
1 2 10
1 2 10
1 2 10требует: es6
1 2 10 |
Значение переменной цикла после его выполнения # | |
Step 0 Step 1 Step 2 Step 3 Outside of loop, i = 3 |
Step 0 Step 1 Step 2 Step 3 Outside of loop, i = 4
Step 0 Step 1 Step 2 Step 3 [stdin]:4 console.log("Outside of loop, i =", i) ^ ReferenceError: i is not defined at [stdin]:4:37 at Script.runInThisContext (vm.js:132:18) at Object.runInThisContext (vm.js:315:38) at Object.<anonymous> ([stdin]-wrapper:10:26) at Module._compile (internal/modules/cjs/loader.js:1256:30) at evalScript (internal/process/execution.js:98:25) at internal/main/eval_stdin.js:29:5 at Socket.<anonymous> (internal/process/execution.js:211:5) at Socket.emit (events.js:326:22) at endReadableNT (_stream_readable.js:1244:12)требует: es6 |
Опасности перебора элементов списка с помощью in # | |
Exception: AttributeError 'list' object has no attribute 'some_value' В объект стандартного типа
1 2 10 Можно создать новый класс, наследуя от |
1 2 10 I'm here! В JavaScript массив — это просто (хорошо оптимизированный) объект с
числовыми индексами. Если вы добавите ещё одно свойство в этот
объект, оно окажется в числе перечисляемых с помощью
1 2 10 I'm here! |
Перебор ключей в словаре / объекте # | |
a b |
a b new_property В объектах JavaScript не различаются записи, свойства и методы.
Более того: цикл
a b |
Перебор ключей и значений в словаре / объекте # | |
a => 10 b => 20 |
a => 10 b => 20ссылка См. комментарий к другому примеру. |
Это наиболее безопасный способ перебора элементов массива. Поддерживается во всех версиях JS, нет опасности включить в перебор свойства, не являющиеся индексированными элементами списка, см. другой пример.