Аналог foreach в javascript

foreach (от англ. for eachдля каждого) — конструкция позволяющая задать операция для каждого из объектов, состоящих из ключа и значения, указанного массива, без явного указания порядка перечисления этих объектов.

Другими словами, цикл foreach перебирает элементы массива, которые мы можем обработать по своему усмотрению. Вот как это выглядит в PHP:

$obj = array('first', 'medium_key'=>'medium_val', 1=>'last');
foreach ( $obj as $key=>$val ) {
  echo $key . ' = ' . $val;
}

Несколько сложнее ситуация с JavaScript. Аналога циклу foreach здесь как таковой нет, но нечто схожее можно получить путём использования оператора in в цикле for. Синтаксис оператора in выглядит следующим образом:

prop in object

Оператор in проверяет наличие указанного свойства или метода (prop) в цказанном объекте (object). Для наглядности приведу обратную аналогию. Действие оператора in чем-то схоже с php-функцией array_search(), элемент массива по его ключу.

Например, возьмём массив: obj = { a: 5 }. В этом случае: "a" in obj — вернёт true, а "b" in objfalse. "toString" in obj — тоже вернёт true, т.к toString есть в прототипе obj.

Самым интересным здесь является то, что операнд prop представляет собой ссылку на интересующее нас свойство или метод. Таким образом, мы можем задать условие в цикле for, которое будет true до тех пор, пока мы не достигнем конечного элемента массива. Плюс ко всему, ссылка вернёт ключ элемента массива. Например:

for (var key in obj) {
  var val = some_array[key];
  document.write(key+' = '+val);
}

Не трудно понять, что получить значения текущего элемента массива, используя ссылку key со значением ключа достаточно просто: var val = some_array[key];

Похожие заметки

28.07.2010 Рубрика: Веб-мастеру