Веб-программирование — почти всегда это создание кода, с использованием нескольких языков программирования. Зная одни языки, вы ищите знакомые аналоги там, где не так твердо стоите на ногах.
Есть ли в javascript оператор цикла foreach (аналог в PHP)?
И да и нет. Но скорее — да. :)
Foreach предназначен для перебора элементов массива. Потому он является методом объекта Array.
Array.forEach(callback)
В следующем примере показано, как он может использоваться.
1 2 3 4 5 |
var a = ["Элемент 1", "Элемент 2", "Элемент 3"]; a.forEach(function(item, i, a) { console.log( 'Индекс: ' + i + ": Значение: " + item ); }); |
В колбэк-функцию передаются три параметра — элемент массива, ключ и сам массив.
FOR — IN цикл
В отличии от простого цикла for-in позволяет итерировать свойства объекта, либо массива с не полностью заселенными индексами.
Вот пример такого массива.
1 2 3 4 |
var a = []; a[1] = 5; a[10] = 6; a[100] = 7; |
Перебрать его элементы можно вот так:
1 2 3 4 |
for (key in a) { console.log(a[key]); } //выведет 5 6 7 |
Важный момент состоит в том, что порядок свойств объекта или элементов массива при таком переборе может оказаться неожиданным (т.е. выведет не «5 6 7», а в другом порядке).
FOR — OF цикл
Раз уж я заговорил о переборе элементов, то нужно упомянуть еще об одной конструкции. Следующий цикл позволяет сразу получать значения, а не ключи.
1 2 3 4 5 |
var a = ["a", "b", "c"], value; for (value of a) { console.log(value); } //выведет a b c |
Как видите, все варианты имеют свои особенности и ограничения. Остаётся выбрать тот из них, который подходит именно для вашей задачи.