ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

JS Учебник

JS Старт JS Интро JS Установка JS Вывод JS Инструкции JS Синтаксис JS Комментарии JS Переменные JS Ключевое слово Let JS Ключевое слово Const JS Операторы JS Арифметические JS Присваивание JS Типы данных JS Функции JS Объекты JS События JS Строки JS Строковые методы JS Строковый поиск JS Строковые шаблоны JS Числа JS Числовые методы JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Массив Const JS Даты JS Форматы дат JS Методы получения дат JS Методы установки дат JS Математические JS Рандомные JS Булевы JS Сравнения JS Условия JS Switch JS Цикл For JS Цикл For In JS Цикл For Of JS Цикл While JS Break и Continue JS Итерации JS Наборы JS Карты JS Typeof JS Преобразование типов JS Побитовые JS Регулярные выражения JS Ошибки JS Область действия JS Хостинг JS Use Strict JS Ключевое слово this JS Функция стрелки JS Классы JS JSON JS Отладка JS Гид по стилю JS Лучшие практики JS Распространенные ошибки JS Производительность JS Зарезервированные слова

JS Версии

JS Версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/Edge JS История

JS Объекты

Определения объектов Свойства объекта Методы объекта Отображение объекта Доступ к объектам Конструкторы объектов Прототипы объектов Итерируемые объекты Наборы объектов Карты объектов Справочник объектов

JS Функции

Определения функций Параметры функции Обращение к функции Вызов функции Применение функции Закрытие функции

JS Классы

Введение Наследование класса Статические методы

JS Асинхронный

Обратные вызовы Асинхронный Промисы Async/Await

JS HTML DOM

DOM Введение DOM Методы DOM Документ DOM Элементы DOM HTML DOM Формы DOM CSS DOM Анимация DOM События DOM Слушатель событий DOM Навигация DOM Узлы DOM Коллекции DOM Узловые списки

JS Браузер BOM

JS Окно JS Скрин JS Локация JS История JS Навигатор JS Всплывающее оповещение JS Тайминг JS Куки

JS Веб API

Веб API Интро Веб-формы API Веб-история API Веб-хранилище API Веб-воркер API Веб-выборка API Веб-геолокация API

JS AJAX

AJAX Интро AJAX XMLHttp AJAX Запрос AJAX Отклик AJAX XML Файл AJAX PHP AJAX ASP AJAX База данных AJAX Приложения AJAX Примеры

JS JSON

JSON Введение JSON Синтаксис JSON и XML JSON Типы данных JSON Анализ JSON Stringify JSON Объекты JSON Массивы JSON Сервер JSON PHP JSON HTML JSON JSONP

JS и jQuery

jQuery Селекторы jQuery HTML jQuery CSS jQuery DOM

JS Примеры

JS Примеры JS HTML DOM JS HTML Input JS HTML Объекты JS HTML События JS Браузер JS Редактор JS Упражнения JS Викторина JS Сертификат

JS Справочники

JavaScript Объекты HTML DOM Объекты

JavaScript. W3Schools на русском. Уроки для начинающих

JavaScript Итерация массива


Методы итерации массива работают с каждым элементом массива.


Array.forEach()

Метод forEach() вызывает функцию (функцию обратного вызова) один раз для каждого элемента массива.

Пример

const numbers = [45, 4, 9, 16, 25];
let txt = "";
numbers.forEach(myFunction);

function myFunction(value, index, array) {
  txt += value + "<br>";
}
Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение элемента
  • Индекс элемента
  • Сам массив

В приведенном выше примере используется только параметр значения. Пример можно переписать так:

Пример

const numbers = [45, 4, 9, 16, 25];
let txt = "";
numbers.forEach(myFunction);

function myFunction(value) {
  txt += value + "<br>";
}
Попробуйте сами »

Array.map()

Метод map() создает новый массив, выполняя функцию для каждого элемента массива.

Метод map() не выполняет функцию для элементов массива без значений.

Метод map() не изменяет исходный массив.

В этом примере каждое значение массива умножается на 2:

Пример

const numbers1 = [45, 4, 9, 16, 25];
const numbers2 = numbers1.map(myFunction);

function myFunction(value, index, array) {
  return value * 2;
}
Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение элемента
  • Индекс элемента
  • Сам массив

Когда функция обратного вызова использует только параметр значения, параметры индекса и массива можно не указывать:

Пример

const numbers1 = [45, 4, 9, 16, 25];
const numbers2 = numbers1.map(myFunction);

function myFunction(value) {
  return value * 2;
}
Попробуйте сами »

Array.filter()

Метод filter() создает новый массив с элементами массива, который проходит проверку.

В этом примере создается новый массив из элементов со значением больше 18:

Пример

const numbers = [45, 4, 9, 16, 25];
const over18 = numbers.filter(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение элемента
  • Индекс элемента
  • Сам массив

В приведенном выше примере функция обратного вызова не использует параметры индекса и массива, поэтому их можно не указывать:

Пример

const numbers = [45, 4, 9, 16, 25];
const over18 = numbers.filter(myFunction);

function myFunction(value) {
  return value > 18;
}
Попробуйте сами »

Array.reduce()

Метод reduce() запускает функцию для каждого элемента массива для создания (уменьшения до) одного значения.

Метод reduce() работает в массиве слева направо. Смотрите также reduceRight().

Метод reduce() не уменьшает исходный массив.

Этот пример находит сумму всех чисел в массиве:

Пример

const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduce(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}
Попробуйте сами »

Обратите внимание, что функция принимает 4 аргумента:

  • Итого (начальное значение / ранее возвращенное значение)
  • Значение элемента
  • Индекс элемента
  • Сам массив

В приведенном выше примере не используются параметры индекса и массива. Его можно переписать на:

Пример

const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduce(myFunction);

function myFunction(total, value) {
  return total + value;
}
Попробуйте сами »

Метод reduce() может принимать начальное значение:

Пример

const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduce(myFunction, 100);

function myFunction(total, value) {
  return total + value;
}
Попробуйте сами »

Array.reduceRight()

Метод reduceRight() запускает функцию для каждого элемента массива для создания (уменьшения до) одного значения.

Метод reduceRight() работает в массиве справа налево. Смотрите также reduce().

Метод reduceRight() не уменьшает исходный массив.

Этот пример находит сумму всех чисел в массиве:

Пример

const numbers = [45, 4, 9, 16, 25];
let sum = numbers1.reduceRight(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}
Попробуйте сами »

Обратите внимание, что функция принимает 4 аргумента:

  • Итого (начальное значение / ранее возвращенное значение)
  • Значение элемента
  • Индекс элемента
  • Сам массив

В приведенном выше примере не используются параметры индекса и массива. Его можно переписать на:

Пример

const numbers = [45, 4, 9, 16, 25];
let sum = numbers1.reduceRight(myFunction);

function myFunction(total, value) {
  return total + value;
}
Попробуйте сами »

Array.every()

Метод every() проверяет, все ли значения массива проходят тест.

В этом примере проверяется, все ли значения массива больше 18:

Пример

const numbers = [45, 4, 9, 16, 25];
let allOver18 = numbers.every(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение элемента
  • Индекс элемента
  • Сам массив

Когда функция обратного вызова использует только первый параметр (значение), остальные параметры можно не указывать:

Пример

const numbers = [45, 4, 9, 16, 25];
let allOver18 = numbers.every(myFunction);

function myFunction(value) {
  return value > 18;
}
Попробуйте сами »

Array.some()

Метод some() проверяет, проходят ли некоторые значения массива тест.

В этом примере проверяется, не превышают ли некоторые значения массива 18:

Пример

const numbers = [45, 4, 9, 16, 25];
let someOver18 = numbers.some(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение элемента
  • Индекс элемента
  • Сам массив

Array.indexOf()

Метод indexOf() ищет в массиве значение элемента и возвращает его позицию.

Примечание: Первый элемент имеет позицию 0, второй элемент - позицию 1 и т.д.

Пример

Искать элемент в массиве "Apple":

const fruits = ["Apple", "Orange", "Apple", "Mango"];
let position = fruits.indexOf("Apple") + 1;
Попробуйте сами »

Синтаксис

array.indexOf(item, start)
item Обязательно. Элемент для поиска.
start По желанию. С чего начать поиск. Отрицательные значения начнутся в данной позиции, считая от конца, и поиск до конца.

Array.indexOf() возвращает -1, если элемент не найден.

Если элемент присутствует более одного раза, он возвращает позицию первого вхождения.


Array.lastIndexOf()

Array.lastIndexOf() то же самое, что и Array.indexOf(), но возвращает позицию последнего вхождения указанного элемента.

Пример

Искать элемент в массиве "Apple":

const fruits = ["Apple", "Orange", "Apple", "Mango"];
let position = fruits.lastIndexOf("Apple") + 1;
Попробуйте сами »

Синтаксис

array.lastIndexOf(item, start)
item Обязательно. Элемент для поиска
start По желанию. С чего начать поиск. Отрицательные значения будут начинаться с данной позиции, считая от конца, и поиск до начала.

Array.includes()

ECMAScript 2016 представил массивы Array.includes() Это позволяет нам проверить, присутствует ли элемент в массиве (включая NaN, в отличие от indexOf).

Пример

const fruits = ["Banana", "Orange", "Apple", "Mango"];

fruits.includes("Mango"); // является true
Попробуйте сами »

Синтаксис

array.includes(search-item)

Array.includes() позволяет проверять значения NaN. В отличие от Array.indexOf().

Array.includes() не поддерживается в Internet Explorer и Edge 12/13.

Первые версии браузеров с полной поддержкой:

Chrome 47 Edge 14 Firefox 43 Safari 9 Opera 34
Des 2015 Aug 2016 Des 2015 Oct 2015 Des 2015

Array.find()

Метод find() возвращает значение первого элемента массива, который передает тестовую функцию.

В этом примере находит (возвращает значение) первый элемент, размер которого больше 18:

Пример

const numbers = [4, 9, 16, 25, 29];
let first = numbers.find(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение элемента
  • Индекс элемента
  • Сам массив

Array.find() не поддерживается в старых версиях браузеров. Первые версии браузеров с полной поддержкой:

Chrome 45 Edge 12 Firefox 25 Safari 8 Opera 32
Sep 2015 Aug 2015 Oct 2013 Oct 2014 Sep 2015

Array.findIndex()

Метод findIndex() возвращает индекс первого элемента массива, который передает тестовую функцию.

В этом примере выполняется поиск индекса первого элемента, который больше 18:

Пример

const numbers = [4, 9, 16, 25, 29];
let first = numbers.findIndex(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение элемента
  • Индекс элемента
  • Сам массив

Array.findIndex() не поддерживается в старых версиях браузеров. Первые версии браузеров с полной поддержкой:

Chrome 45 Edge 12 Firefox 25 Safari 8 Opera 32
Sep 2015 Aug 2015 Oct 2013 Oct 2014 Sep 2015

Array.from()

Метод Array.from() возвращает объект Array из любого объекта со свойством length или любого итеративного объекта.

Пример

Создать массив из строки:

Array.from("ABCDEFG")   // Returns [A,B,C,D,E,F,G]
Попробуйте сами »

Array.Keys()

Метод Array.keys() возвращает объект Array Iterator с ключами массива.

Пример

Создайте объект Array Iterator, содержащий ключи массива:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
const keys = fruits.keys();

for (let of keys) {
  text += x + "<br>";
}
Попробуйте сами »

Полный справочник массивов

Для получения полной справки перейдите в Полный справочник JavaScript массив на нашем сайте W3Schools на русском.

Справочник содержит описания и примеры всех свойств и методов массива.