Циклы и перебирающие методы в JavaScript

Циклы необходимы для создания сайтов не меньше, чем операторы ветвления и переменные. Их использование облегчает вывод массивов данных (любой длины), расчёт функций, сумм, и т.п. В JavaScript существуют циклы со счетчиком, циклы "пока" и "для каждого": 1. Цикл for - полезный и наиболее используемый цикл. Выполняется пока выполняется условное выражение. Его синтаксис выглядит следующим образом:
1
2
3
4
5
//со счетчиком
 
for (var counter=0; counter < 5; counter++) {
    alert(counter);
}
Такой цикл следует использовать там, где это возможно, т.к. он более устойчив к ошибкам, чем цикл while 2. Цикл while - также выполняется пока истинно условие, но отличается от for тем, что в в скобках записывается только само условие, а изменение его составляющих происходит в теле самого цикла:
1
2
3
4
var counter=0;
while (counter < 5){
    counter++; //Увеличение counter на 1
}
3. Цикл forEach проходит по всем элементам массива. forEach несколько отличается от остальных циклов в JavaScript синтаксисом:
1
2
3
[5,3,12,3,2,3].forEach(function(element, index) {
    alert("Элемент " + element + " с индексом " + index);
});
Так же возможно пройти все элементы массива и циклом for:
1
2
3
4
var arr = [5,3,12,3,2,3];
for (var key in arr) {
    alert(key, arr[key]);
}
В ES6 добавился ещё for ... of ..
1
2
3
for (var element of [5,3,12,3,2,3]) {
    alert(element);
}

Перебирающие методы: Array.prototype.map - преобразует элементы массива. Один за другим - по очереди.
1
2
3
4
var arr = [1, 2, 3].map(function(element) {
    return element * 2;
});
//arr = [ 2, 4 ,6 ];
Array.prototype.reduce(fn(result, currentElement, index, sourceArray), initialResult) - преобразует массив в другой объект
1
2
3
4
5
var result = [1, 2, 3].reduce(
   function(result, curr) { return result + curr; },  //преобразующая ф-ия
   0 // изначальное значение для result
);
//result = 6 <-- 0 + 1 + 2 + 3
Спасибо за внимание.
Если статья Вам показалась незаконченной или Вы знаете как её улучшить, пожалуйста сообщите мне e@gohtml.ru