Javascript
Статистика
Reklama 2Under.ru
кино, фильмы, видео
музыка и MP3
авто и мото
знакомства
заработок в сети
игры
форекс, forex
женские сайты
для взрослых
строительство и ремонт
недвижимость
бытовая техника
здоровье и медицина
красота, косметика
работа, вакансии, резюме
животные и растения
детские товары
знакомства для интима
софт
развлечения
одежда и обувь
туризм и отдых
мебель, интерьер
компьютеры и оргтехника
реклама и интернет
промышленное оборудование
сырье и материалы
социальные сети
средства связи
образование и обучение
WmLink
LiveClix
Реклама от LiveCLiX
Пятница, 22.11.2024, 14:00
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход
foreach

foreach


Я говорил, что циклы — не всегда самое лучшее решение, но какие вообще есть альтернативы?

Чем можно заменить подобный цикл?

for (var i =1; l = arr.length; i< l; ++i){
 console.log(arr[i]);
}



Например foreach.

Array.prototype.forEach

arr.forEach(function(item){
 console.log(item);
});



Вместо пробегать по списку руками, мы можем использовать 
метод массива. Передадим туда функцию обрабатывающую каждый элемент и получим необходимый результат.

Но в чем принципиальная разница между этим
for (var i =1; l = arr.length; i< l; ++i){
 console.log(arr[i]);
}


и этим 

arr.forEach(function(item){
 console.log(item);
});

?

К сожалению, синтаксис для описания функций в JS достаточно многословен, поэтому мы не получили значительной экономии в количестве написанного текста.

Но есть еще кое что. Глядя на код, можно сказать, чему уделяется внимание в каждой из реализаций.

Первый участок ориентирован на саму механику цикла. Взять число, увеличить его на единицу, получить элемент массива по индексу, произвести действие.

Второй пример гораздо проще для понимания. Мы делаем что-то с каждым элементом списка.

Во втором примере уровень абстракции гораздо выше. И он позволяет подходить к решению задачи с другой стороны.

Итак, для чего мы можем использовать циклы:
  • Побочные эффекты
  • Трансформация
  • Фильтры
  • Комбинирование элементов
  • Еще куча вариантов
Copyright MyCorp © 2024
Сделать бесплатный сайт с uCoz