Javascript: 7 способов перебрать массив
Рассмотрим семь вариантов, как перебрать массив в js.
Цикл For
Пожалуй самый популярный способ проитерировать массив.
let arrData = ['php', 'js', 'mysql', 'python'];
for (i=0;i<arrData.length;i++) {
console.log(arrData[i]);
}
Цикл While
Второй по популярности способ перебора, будет итерировать пока условие true (верно). Другими словами, пока переменная i меньше длины массива.
let arrData = ['php', 'js', 'mysql', 'python'];
let i = 0;
while(i < arrData.length){
console.log(arrData[i]);
i++;
}
Цикл forEach
Существует для итерации коллекций. Коллекция может быть массивом или списком. В каждой итерации, получаем 2 аргумента. Первый — это сам элемент массива. Второй — это его индекс.
let arrData = ['php', 'js', 'mysql', 'python'];
arrData.forEach((item,index) => {
console.log(item);
});
Every()
Метод every выполняет функцию для каждого элемента массива. В данном случае, мы передаем в метод every, функцию logger для вывода каждого элемента в консоль и завершаем каждую итерацию, возвращая true. Чтобы цикл не остановился.
let arrData = ['php', 'js', 'mysql', 'python'];
const logger = ((element) => {
console.log(element);
return true;
})
arrData.every(logger);
Метод every() вызывает переданную функцию callback один раз для каждого элемента, присутствующего в массиве, пока не найдёт такой, для которого callback вернёт false.
Some()
Метод some() проверяет, проходит ли хотя бы один элемент в массиве тест, реализованный переданной функцией.
let arrData = ['php', 'js', 'mysql', 'python'];
let someTrigger = arrData.some((val, index, array) => {
console.log(val);
})
Filter()
Метод filter() создает новый массив, заполненный элементами, прошедшими проверку, переданной функцией.
let arrData = ['php', 'js', 'mysql', 'python'];
let filterTrigger = arrData.filter((item) => {
console.log(item);
return true;
})
Map()
Метод map(), перебирает массив и создает новый, где каждый элемент является результатом callback функции.
let arrData = ['php', 'js', 'mysql', 'python'];
let newArr = arrData.map((item) => {
console.log(item);
})