Методы для перебора массива

Оцените материал
(0 голосов)

Здравствуйте! Продолжаем изучать методы массивов и в этом уроке рассмотрим методы для перебора массива. Эти методы позволяют пройтись по массиву и выполнить определенные действия над его элементами. Да забыл сказать все эти методы не поддерживаются в IE 8. Хотя так уж это сейчас важно что они не поддерживаются этим браузером, но все же если хотите поддержку IE8, то ES5-shim вам в помощь. А мы будем продолжать

Методы перебора массива

Метод forEach

Данный метод используется для прохода по массиву в цикле, но ему можно передать функцию, в которой можно делать определенные дейятвия над элементами массива. Рассмотрим на примере.

  var mas = ["Банан", "Авокадо", "Морковь"];
  mas.forEach(function(item, i, mas) {
  alert( i + ": " + item + " (массив:" + mas + ")" );
});

Просмотреть  пример

Здесь в примере в метод forEach передается функция в которой указывается 3 параметра:

item -  элемент массива

i - номер элемента массива

mas - массив, который обрабатывается.

Данный метод можно использовать вместо цикла for для перебора массива.

Метод filter

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

Немного запутанно, поэтому рассмотрим на примере.

var mas = [1, -2, 4, -5, 3];
var positiveNum = mas.filter(function(num) {
  return num > 0;
});
document.write( positiveNum ); // 1,4,3

Просмотреть  пример

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

Метод map

Метод map создает другой массив, который будет состоять из результатов вызова функции исходного массива, но в этой функции над элементами исходного массива будут происходить какие-то действия и результат окажется в новом массиве во как. Давайте разберем пример, а то я думаю совсем непонятно.

var mas = [1, 2, 3];
var newMas = mas.map(function(item) {
  return item*item;
});
// получили массив с квадратами
alert( newMas ); // 1,4,9

Просмотреть  пример

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

Методы every/some

Данные методы проверяют присутствует ли элемент в массиве. Делают они это через функцию, которая им передается в качестве параметра, то есть если эта функция вернет true тогда и сам метод вернет true. Причем метод every требует чтобы каждый элемент соответсвовал условию функции, а метод some, чтобы хотя бы один соответсвовал. И как всегда вот вам пример.

  var mas = [5, -1, 6, -2, 9];
function isPositiv(num) {
  return num > 0;
}
if(mas.every(isPositiv)) {
  document.write("Массив содержит  только положительные числа");
}
else{
  document.write("В массиве есть хотя бы одно отрицательное число
"); } if(mas.some(isPositiv)) { document.write("В массиве есть хотя бы одно положительное число"); } else { document.write("В массиве нет положительных чисел"); }

Просмотреть  пример

Рассмотрим пример у нас есть массив с положительными и отрицательными числами и нам надо проверить его на наличие хотя бы одного отрицательного числа. Для этого используем методы every и some. Создаем функцию, которая будет возвращать положительные числа и затем ее передаем в метод every поскольку данный метод возвращает логический результат, то и используется он в условных операторах.  Метод every в нашем примере вернет false потому что в массиве есть отрицательные числа, а вот метод some вернет true, потому что в массиве есть хотя бы одно положительное число.

Итоги

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

 

  • forEach – для перебора массива в цикле.
  • filter – для осуществления фильтрации массива. Возвращает новый отфильтрованный массив
  • every/some – для проверки массива на предмет присутствия отдельных элементов.
  • map – для преобразования массива в массив. Возвращает исходный преобразованный массив.

Задания

Получите новый массив

Пусть дан массив var mas = ["HTML", "CSS", "JavaScript", "Pascal"] вам надо с помощью метода map получить новый массив который будет содержать длины каждого элемента исходного массива.

Отфильтруйте массив

Есть массив var mas = [1,5,7,-9,-5,12] вам надо, используя метод filter получить массив, который содержит только положительные числа.

Проверить массив

Есть массив var mas = [1,5,7,-9,-5,15] вам надо проверить есть ли в массиве отрицательные числа и вывести результат на экран.

Ну и в заключении небольшое видео по методам для перебора массива в цикле.

 

 

Прочитано 163 раз Последнее изменение Воскресенье, 10 сентября 2017 05:02
Другие материалы в этой категории:
Понравилась запись? Подпишитесь на обновления по почте:

Нетология

TemplateMonster

Поиск по сайту

Связной трэвел

Google+