JavaScript Интерация массива
Методы итерации массива работают с каждым элементом массива.
Array.forEach()
Метод forEach()
вызывает функцию (функцию обратного вызова) один раз для каждого элемента массива.
Пример
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value, index, array) {
txt = txt + value + "<br>";
}
Попробуйте сами »
Обратите внимание, что функция принимает 3 аргумента:
- Значение элемента (value)
- Индекс элемента (index)
- Сам массив (array)
В приведенном выше примере используется только параметр value (значение). Пример можно переписать:
Пример
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value) {
txt = txt + value + "<br>";
}
Попробуйте сами »
Array.forEach()
поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии:
Да | 9.0 | Да | Да | Да |
Array.map()
Метод map()
создает новый массив, выполняя функцию для каждого элемента массива.
Метод map()
не выполняет функцию для элементов массива без значений.
Метод map()
не изменяет исходный массив.
В этом примере каждое значение массива умножается на 2:
Пример
var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value, index, array) {
return value * 2;
}
Попробуйте сами »
Обратите внимание, что функция принимает 3 аргумента:
- Значение элемента (value)
- Индекс элемента (index)
- Сам массив (array)
Когда функция обратного вызова использует только параметр значения, параметры индекса и массива можно не указывать:
Пример
var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value) {
return value * 2;
}
Попробуйте сами »
Array.map()
поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.
Да | 9.0 | Да | Да | Да |
Array.filter()
Метод filter()
создает новый массив с элементами массива, проходит тест.
В этом примере создается новый массив из элементов со значением больше 18:
Пример
var numbers = [45, 4, 9, 16, 25];
var over18 =
numbers.filter(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
Попробуйте сами »
Обратите внимание, что функция принимает 3 аргумента:
- Значение элемента (value)
- Индекс элемента (index)
- Сам массив (array)
В приведенном выше примере функция обратного вызова не использует параметры индекса и массива, поэтому их можно не указывать:
Пример
var numbers = [45, 4, 9, 16, 25];
var over18 =
numbers.filter(myFunction);
function myFunction(value) {
return value > 18;
}
Попробуйте сами »
Array.filter()
поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.
Да | 9.0 | Да | Да | Да |
Array.reduce()
Метод reduce()
запускает функцию для каждого элемента массива, чтобы произвести (уменьшить его до) одно значение.
Метод reduce()
работает слева направо в массиве. См. Также reduceRight()
.
Метод reduce()
не уменьшает исходный массив.
В этом примере выполняется поиск суммы всех чисел в массиве:
Пример
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value, index, array) {
return total + value;
}
Попробуйте сами »
Обратите внимание, что функция принимает 4 аргумента:
- Итого (total) (начальное значение / ранее возвращенное значение)
- Значение элемента (value)
- Индекс элемента (index)
- Сам массив (array)
В приведенном выше примере не используются параметры индекса и массива. Его можно переписать так:
Пример
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value) {
return total + value;
}
Попробуйте сами »
Метод reduce()
может принимать начальное значение:
Пример
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction,
100);
function myFunction(total, value) {
return total + value;
}
Попробуйте сами »
Array.reduce()
поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.
Да | 9.0 | Да | Да | Да |
Array.reduceRight()
Метод reduceRight()
запускает функцию для каждого элемента массива,
чтобы произвести (уменьшить его до) одно значение.
В reduceRight()
работает справа налево в массиве. См. Также. reduce()
.
Метод reduceRight()
не уменьшает исходный массив.
В этом примере выполняется поиск суммы всех чисел в массиве:
Пример
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);
function myFunction(total, value, index, array) {
return total + value;
}
Попробуйте сами »
Обратите внимание, что функция принимает 4 аргумента:
- Итого (total) (начальное значение / ранее возвращенное значение)
- Значение элемента (value)
- Индекс элемента (index)
- Сам массив (array)
В приведенном выше примере не используются параметры индекса и массива. Его можно переписать так:
Пример
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);
function myFunction(total, value) {
return total + value;
}
Попробуйте сами »
Array.reduceRight()
поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.
Да | 9.0 | Да | Да | Да |
Array.every()
Метод every()
проверяет, все значения массива проходят тест.
В этом примере проверяется, все ли значения массива больше 18:
Пример
var numbers = [45, 4, 9, 16, 25];
var allOver18 =
numbers.every(myFunction);
function myFunction(value, index, array) {
return
value > 18;
}
Попробуйте сами »
Обратите внимание, что функция принимает 3 аргумента:
- Значение элемента (value)
- Индекс элемента (index)
- Сам массив (array)
Когда функция обратного вызова использует только первый параметр (значение), остальные параметры можно не указывать:
Пример
var numbers = [45, 4, 9, 16, 25];
var allOver18 =
numbers.every(myFunction);
function myFunction(value) {
return
value > 18;
}
Попробуйте сами »
Array.every()
поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.
Да | 9.0 | Да | Да | Да |
Array.some()
Метод some()
проверяет, если некоторые значения массива проходят тест.
В этом примере проверяется, не превышают ли некоторые значения массива 18:
Пример
var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);
function myFunction(value, index, array) {
return
value > 18;
}
Попробуйте сами »
Обратите внимание, что функция принимает 3 аргумента:
- Значение элемента (value)
- Индекс элемента (index)
- Сам массив (array)
Array.some()
поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.
Да | 9.0 | Да | Да | Да |
Array.indexOf()
Метод indexOf()
ищет массив для значения элемента и возвращает его позицию.
Примечание: первый элемент имеет позицию 0, второй элемент - позицию 1 и так далее.
Пример
Найдите в массиве элемент "Яблоко":
var fruits = ["Яблоко", "Апельсин", "Яблоко", "Манго"];
var a = fruits.indexOf("Яблоко");
Попробуйте сами »
Array.indexOf()
поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.
Да | 9.0 | Да | Да | Да |
Синтаксис
array.indexOf(item, start)
item | Обязательный. Элемент для поиска. |
start | Необязательный. С чего начать поиск. Отрицательные значения начнутся в данной позиции, считая от конца, и поиск до конца. |
Array.indexOf()
возвращает -1, если элемент не найден.
Если элемент присутствует более одного раза, он возвращает позицию первого вхождения.
Array.lastIndexOf()
Array.lastIndexOf()
то же самое, что и Array.indexOf()
, но возвращает позицию последнего вхождения указанного элемента.
Пример
Найдите в массиве элемент "Яблоко":
var fruits = ["Яблоко", "Апельсин", "Яблоко", "Манго"];
var a = fruits.lastIndexOf("Яблоко");
Попробуйте сами »
Array.lastIndexOf()
поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.
Да | 9.0 | Да | Да | Да |
Синтаксис
array.lastIndexOf(item, start)
item | Обязательный. Элемент для поиска |
start | Необязательный. С чего начать поиск. Отрицательные значения будут начинаться с данной позиции, считая от конца, и поиск до начала |
Array.find()
Метод find()
возвращает значение первого элемента массива, который проходит тестовую функцию.
В этом примере выполняется поиск (возвращается значение) первого элемента, превышающего 18:
Пример
var numbers = [4, 9, 16, 25, 29];
var first =
numbers.find(myFunction);
function myFunction(value, index, array) {
return
value > 18;
}
Попробуйте сами »
Обратите внимание, что функция принимает 3 аргумента:
- Значение элемента (value)
- Индекс элемента (index)
- Сам массив (array)
Array.find()
не поддерживается в старых версиях браузеров. Ниже перечислены первые версии браузеров с полной поддержкой.
45 | 12 | 25 | 8 | 32 |
Array.findIndex()
Метод findIndex()
возвращает индекс первого элемента массива, который проходит тестовую функцию.
В этом примере выполняется поиск индекса первого элемента, который больше 18:
Пример
var numbers = [4, 9, 16, 25, 29];
var first =
numbers.findIndex(myFunction);
function myFunction(value, index, array) {
return
value > 18;
}
Попробуйте сами »
Обратите внимание, что функция принимает 3 аргумента:
- Значение элемента (value)
- Индекс элемента (index)
- Сам массив (array)
Array.findIndex()
не поддерживается в старых версиях браузеров. Ниже перечислены первые версии браузеров с полной поддержкой.
45 | 12 | 25 | 8 | 32 |