0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p><strong>Массив в JavaScript</strong>- упорядоченный набор значений, которые называют элементами, причём каждый элемент имеет свой индекс, характеризующий числовую позицию элемента в массиве. В этой статье мы поговорим, как выполнять работу с массивами в JavaScript.</p>
1
<p><strong>Массив в JavaScript</strong>- упорядоченный набор значений, которые называют элементами, причём каждый элемент имеет свой индекс, характеризующий числовую позицию элемента в массиве. В этой статье мы поговорим, как выполнять работу с массивами в JavaScript.</p>
2
<p>Для начала вспомним, что в JavaScript массивы являются<strong>нетипизированными</strong>, то есть элементы массива могут иметь любой тип, при этом разные элементы в одном и том же массиве иногда имеют разные типы. Мало того, элементы массива в JavaScript бывают объектами либо даже другими массивами - всё это позволяет создавать действительно сложные структуры данных, например, массивы массивов и массивы объектов.</p>
2
<p>Для начала вспомним, что в JavaScript массивы являются<strong>нетипизированными</strong>, то есть элементы массива могут иметь любой тип, при этом разные элементы в одном и том же массиве иногда имеют разные типы. Мало того, элементы массива в JavaScript бывают объектами либо даже другими массивами - всё это позволяет создавать действительно сложные структуры данных, например, массивы массивов и массивы объектов.</p>
3
<p>Идём дальше. В языке JavaScript отчёт индексов массивов начинается с нуля, причём для них применяются 32-битные целые числа. Что касается первого элемента массива, то его индекс равен нулю.</p>
3
<p>Идём дальше. В языке JavaScript отчёт индексов массивов начинается с нуля, причём для них применяются 32-битные целые числа. Что касается первого элемента массива, то его индекс равен нулю.</p>
4
<p>В JavaScript массивы являются<strong>динамическими</strong>, в результате чего они способны уменьшаться и увеличиваться в размерах в случае необходимости. И вообще, в JavaScript отсутствует необходимость объявлять фиксированные размеры массивов в процессе их создания либо повторно распределять память в случае изменения размеров массивов.</p>
4
<p>В JavaScript массивы являются<strong>динамическими</strong>, в результате чего они способны уменьшаться и увеличиваться в размерах в случае необходимости. И вообще, в JavaScript отсутствует необходимость объявлять фиксированные размеры массивов в процессе их создания либо повторно распределять память в случае изменения размеров массивов.</p>
5
<p>Также можно сказать, что в JavaScript массивы являются специализированной формой объектов, а индексы массивов значат больше, чем просто имена свойств, по совпадению являющихся целыми числами.</p>
5
<p>Также можно сказать, что в JavaScript массивы являются специализированной формой объектов, а индексы массивов значат больше, чем просто имена свойств, по совпадению являющихся целыми числами.</p>
6
<p>Но давайте закончим со скучной теорией и перейдём к практике. В JavaScript массив представляет объект<strong>Array</strong>. При этом существует ряд методов и свойств, позволяющих управлять нашим массивом.</p>
6
<p>Но давайте закончим со скучной теорией и перейдём к практике. В JavaScript массив представляет объект<strong>Array</strong>. При этом существует ряд методов и свойств, позволяющих управлять нашим массивом.</p>
7
<h2>Инициализация массива в JavaScript</h2>
7
<h2>Инициализация массива в JavaScript</h2>
8
<p>В JavaScript мы можем создать пустой массив, применяя для этого квадратные скобки либо конструктор Array:</p>
8
<p>В JavaScript мы можем создать пустой массив, применяя для этого квадратные скобки либо конструктор Array:</p>
9
var users = new Array(); var people = []; console.log(users); // Array[0] console.log(people); // Array[0]<p>Кроме того, мы можем сразу же инициализировать наш массив некоторым числом элементов:</p>
9
var users = new Array(); var people = []; console.log(users); // Array[0] console.log(people); // Array[0]<p>Кроме того, мы можем сразу же инициализировать наш массив некоторым числом элементов:</p>
10
var users = new Array("Bill", "Tom", "Alice"); var people = ["Sam", "John", "Kate"]; console.log(users); // ["Bill", "Tom", "Alice"] console.log(people); // ["John", "Sam", "Kate"]<p>Также можем определить массив, по ходу определяя в него новые элементы:</p>
10
var users = new Array("Bill", "Tom", "Alice"); var people = ["Sam", "John", "Kate"]; console.log(users); // ["Bill", "Tom", "Alice"] console.log(people); // ["John", "Sam", "Kate"]<p>Также можем определить массив, по ходу определяя в него новые элементы:</p>
11
var users = new Array(); users[1] = "Tom"; users[2] = "Kate"; console.log(users[1]); // "Tom" console.log(users[0]); // undefined<p>Обратите внимание, что не имеет значения, что массив по умолчанию создаётся с нулевой длиной. Используя индексы, мы сможем подставить тот или иной элемент на конкретный индекс в массиве.</p>
11
var users = new Array(); users[1] = "Tom"; users[2] = "Kate"; console.log(users[1]); // "Tom" console.log(users[0]); // undefined<p>Обратите внимание, что не имеет значения, что массив по умолчанию создаётся с нулевой длиной. Используя индексы, мы сможем подставить тот или иной элемент на конкретный индекс в массиве.</p>
12
<h3>length</h3>
12
<h3>length</h3>
13
<p>Если хотим узнать длину массива в JS, используем свойство length:</p>
13
<p>Если хотим узнать длину массива в JS, используем свойство length:</p>
14
var fruit = new Array(); fruit[0] = "груши"; fruit[1] = "яблоки"; fruit[2] = "сливы"; document.write("В массиве fruit " + fruit.length + " элемента: <br/>"); for(var i=0; i < fruit.length; i++) document.write(fruit[i] + "<br/>");<p>Фактически, длиной нашего массива в JavaScript будет индекс последнего элемента, плюс единица. К примеру:</p>
14
var fruit = new Array(); fruit[0] = "груши"; fruit[1] = "яблоки"; fruit[2] = "сливы"; document.write("В массиве fruit " + fruit.length + " элемента: <br/>"); for(var i=0; i < fruit.length; i++) document.write(fruit[i] + "<br/>");<p>Фактически, длиной нашего массива в JavaScript будет индекс последнего элемента, плюс единица. К примеру:</p>
15
var users = new Array(); // в массиве 0 элементов users[0] = "Kate"; users[1] = "Tom"; users[4] = "Sam"; for(var i=0; i<users.length;i++) console.log(users[i]);<p><em>В этом случае вывод браузера будет следующим</em>:</p>
15
var users = new Array(); // в массиве 0 элементов users[0] = "Kate"; users[1] = "Tom"; users[4] = "Sam"; for(var i=0; i<users.length;i++) console.log(users[i]);<p><em>В этом случае вывод браузера будет следующим</em>:</p>
16
Kate Tom undefined undefined Sam<p>Вне зависимости от того, что для индексов №№ 2 и 3 мы элементов не добавляли, длиной массива будет число 5, ведь элементы с индексами №№ 2 и 3 будут просто иметь значение undefined.</p>
16
Kate Tom undefined undefined Sam<p>Вне зависимости от того, что для индексов №№ 2 и 3 мы элементов не добавляли, длиной массива будет число 5, ведь элементы с индексами №№ 2 и 3 будут просто иметь значение undefined.</p>
17
<h2>Копирование массива в JavaScript</h2>
17
<h2>Копирование массива в JavaScript</h2>
18
<h3>slice()</h3>
18
<h3>slice()</h3>
19
<p>В JS копирование массива бывает поверхностным либо неглубоким (<strong>shallow copy</strong>) а также<strong>deep copy</strong>, то есть глубоким.</p>
19
<p>В JS копирование массива бывает поверхностным либо неглубоким (<strong>shallow copy</strong>) а также<strong>deep copy</strong>, то есть глубоким.</p>
20
<p>В первом случае мы присваиваем переменной значение другой переменной, хранящей массив:</p>
20
<p>В первом случае мы присваиваем переменной значение другой переменной, хранящей массив:</p>
21
var users = ["Tom", "Bob", "Bill"]; console.log(users); // ["Tom", "Bob", "Bill"] var people = users; // shallow copy people[1] = "John"; // меняем 2-й элемент console.log(users); // ["Tom", "John", "Bill"]<p>В нашем случае переменная people после неглубокого копирования станет указывать на тот же массив, что и переменная users. Именно поэтому в случае изменения элементов в people, поменяются элементы и в users, ведь по факту это один и тот же массив.</p>
21
var users = ["Tom", "Bob", "Bill"]; console.log(users); // ["Tom", "Bob", "Bill"] var people = users; // shallow copy people[1] = "John"; // меняем 2-й элемент console.log(users); // ["Tom", "John", "Bill"]<p>В нашем случае переменная people после неглубокого копирования станет указывать на тот же массив, что и переменная users. Именно поэтому в случае изменения элементов в people, поменяются элементы и в users, ведь по факту это один и тот же массив.</p>
22
<p>Вышеописанное поведение не всегда желательно. К примеру, нам надо, чтобы после копирования переменные указывали на отдельные массивы. Тогда подойдёт глубокое копирование посредством метода slice():</p>
22
<p>Вышеописанное поведение не всегда желательно. К примеру, нам надо, чтобы после копирования переменные указывали на отдельные массивы. Тогда подойдёт глубокое копирование посредством метода slice():</p>
23
var users = ["Tom", "Bob", "Bill"]; console.log(users); // ["Tom", "Bob", "Bill"] var people = users.slice(); // deep copy people[1] = "John"; // меняем 2-й элемент console.log(users); // ["Tom", "Bob", "Bill"] console.log(people); // ["Tom", "John", "Bill"]<p>Теперь после копирования переменные станут указывать на разные массивы, поэтому мы сможем менять их отдельно друг от друга.</p>
23
var users = ["Tom", "Bob", "Bill"]; console.log(users); // ["Tom", "Bob", "Bill"] var people = users.slice(); // deep copy people[1] = "John"; // меняем 2-й элемент console.log(users); // ["Tom", "Bob", "Bill"] console.log(people); // ["Tom", "John", "Bill"]<p>Теперь после копирования переменные станут указывать на разные массивы, поэтому мы сможем менять их отдельно друг от друга.</p>
24
<p>Кроме того, функция slice() даёт возможность копировать часть массива:</p>
24
<p>Кроме того, функция slice() даёт возможность копировать часть массива:</p>
25
var users = ["Tom", "Bob", "Bill", "Alice", "Kate"]; var people = users.slice(1, 4); console.log(people); // ["Bob", "Bill", "Alice"]<p>В функцию slice() мы передаём начальный и конечный индексы, используемые для выборки значений из нашего массива. В таком случае выборка в новый массив начнётся с первого индекса по индекс № 4, не включая его. И, так как индексация массивов в JavaScript начинается с нуля, в новом массиве будут 2-й, 3-й и 4-й элементы.</p>
25
var users = ["Tom", "Bob", "Bill", "Alice", "Kate"]; var people = users.slice(1, 4); console.log(people); // ["Bob", "Bill", "Alice"]<p>В функцию slice() мы передаём начальный и конечный индексы, используемые для выборки значений из нашего массива. В таком случае выборка в новый массив начнётся с первого индекса по индекс № 4, не включая его. И, так как индексация массивов в JavaScript начинается с нуля, в новом массиве будут 2-й, 3-й и 4-й элементы.</p>
26
<h3>push()</h3>
26
<h3>push()</h3>
27
<p>Функция push() добавит элемент в конец нашего массива:</p>
27
<p>Функция push() добавит элемент в конец нашего массива:</p>
28
var fruit = []; fruit.push("груши"); fruit.push("яблоки"); fruit.push("сливы"); fruit.push("вишни","абрикосы"); document.write("В массиве fruit " + fruit.length + " элемента: <br/>"); document.write(fruit); // груши,яблоки,сливы,вишни,абрикосы<h3>pop()</h3>
28
var fruit = []; fruit.push("груши"); fruit.push("яблоки"); fruit.push("сливы"); fruit.push("вишни","абрикосы"); document.write("В массиве fruit " + fruit.length + " элемента: <br/>"); document.write(fruit); // груши,яблоки,сливы,вишни,абрикосы<h3>pop()</h3>
29
<p>Такая функция, как pop(), удалит последний элемент из JavaScript-массива:</p>
29
<p>Такая функция, как pop(), удалит последний элемент из JavaScript-массива:</p>
30
var fruit = ["груши", "яблоки", "сливы"]; var lastFruit = fruit.pop(); // из массива извлекается последний элемент document.write(lastFruit + "<br/>"); document.write("В массиве fruit " + fruit.length + " элемента: <br/>"); for(var i=0; i <fruit.length; i++) document.write(fruit[i] + "<br/>");<p><em>Итоговый вывод</em>:</p>
30
var fruit = ["груши", "яблоки", "сливы"]; var lastFruit = fruit.pop(); // из массива извлекается последний элемент document.write(lastFruit + "<br/>"); document.write("В массиве fruit " + fruit.length + " элемента: <br/>"); for(var i=0; i <fruit.length; i++) document.write(fruit[i] + "<br/>");<p><em>Итоговый вывод</em>:</p>
31
сливы В массиве fruit 2 элемента: груши яблоки<h3>shift()</h3>
31
сливы В массиве fruit 2 элемента: груши яблоки<h3>shift()</h3>
32
<p>Теперь рассмотрим функцию shift(). Она может извлекать и удалять 1-й элемент из массива:</p>
32
<p>Теперь рассмотрим функцию shift(). Она может извлекать и удалять 1-й элемент из массива:</p>
33
var fruit = ["груши", "яблоки", "сливы"]; var firstFruit = fruit.shift(); document.write(firstFruit + "<br/>"); document.write("В массиве fruit " + fruit.length + " элемента: <br/>"); for(var i=0; i <fruit.length; i++) document.write(fruit[i] + "<br/>");<p><em>Вывод следующий</em>:</p>
33
var fruit = ["груши", "яблоки", "сливы"]; var firstFruit = fruit.shift(); document.write(firstFruit + "<br/>"); document.write("В массиве fruit " + fruit.length + " элемента: <br/>"); for(var i=0; i <fruit.length; i++) document.write(fruit[i] + "<br/>");<p><em>Вывод следующий</em>:</p>
34
груши В массиве fruit 2 элемента: яблоки сливы<h3>unshift()</h3>
34
груши В массиве fruit 2 элемента: яблоки сливы<h3>unshift()</h3>
35
<p>Что касается функции unshift(), то она добавит новый элемент в самое начало массива:</p>
35
<p>Что касается функции unshift(), то она добавит новый элемент в самое начало массива:</p>
36
var fruit = ["груши", "яблоки", "сливы"]; fruit.unshift("апельсины"); document.write(fruit);<p><em>Вывод браузера</em>:</p>
36
var fruit = ["груши", "яблоки", "сливы"]; fruit.unshift("апельсины"); document.write(fruit);<p><em>Вывод браузера</em>:</p>
37
апельсины,груши,яблоки,сливы<h2>Удаление элемента по индексу в JavaScript</h2>
37
апельсины,груши,яблоки,сливы<h2>Удаление элемента по индексу в JavaScript</h2>
38
<h3>splice()</h3>
38
<h3>splice()</h3>
39
<p>Функция splice() удалит элементы с определённого индекса. Вот как выглядит удаление элементов с 3-го индекса:</p>
39
<p>Функция splice() удалит элементы с определённого индекса. Вот как выглядит удаление элементов с 3-го индекса:</p>
40
var users = ["Tom", "Bob", "Bill", "Alice", "Kate"]; var deleted = users.splice(3); console.log(deleted); // [ "Alice", "Kate" ] console.log(users); // [ "Tom", "Bob", "Bill" ]<p>А возвратит удалённые элементы метод slice.</p>
40
var users = ["Tom", "Bob", "Bill", "Alice", "Kate"]; var deleted = users.splice(3); console.log(deleted); // [ "Alice", "Kate" ] console.log(users); // [ "Tom", "Bob", "Bill" ]<p>А возвратит удалённые элементы метод slice.</p>
41
<p>Как видите, удаление идёт с начала массива. Но если передадим отрицательный индекс, удаление начнётся с конца массива. Давайте удалим лишь последний элемент:</p>
41
<p>Как видите, удаление идёт с начала массива. Но если передадим отрицательный индекс, удаление начнётся с конца массива. Давайте удалим лишь последний элемент:</p>
42
var users = ["Tom", "Bob", "Bill", "Alice", "Kate"]; var deleted = users.splice(-1); console.log(deleted); // [ "Kate" ] console.log(users); // [ "Tom", "Bob", "Bill", "Alice" ]<p>Кстати, можно задать конечный индекс для удаления. Удалим элементы, начиная с первого, заканчивая третьим индексами:</p>
42
var users = ["Tom", "Bob", "Bill", "Alice", "Kate"]; var deleted = users.splice(-1); console.log(deleted); // [ "Kate" ] console.log(users); // [ "Tom", "Bob", "Bill", "Alice" ]<p>Кстати, можно задать конечный индекс для удаления. Удалим элементы, начиная с первого, заканчивая третьим индексами:</p>
43
var users = ["Tom", "Bob", "Bill", "Alice", "Kate"]; var deleted = users.splice(1,3); console.log(deleted); // [ "Bob", "Bill", "Alice" ] console.log(users); // [ "Tom", "Kate" ]<p>Можно вставить новые элементы вместо удаляемых:</p>
43
var users = ["Tom", "Bob", "Bill", "Alice", "Kate"]; var deleted = users.splice(1,3); console.log(deleted); // [ "Bob", "Bill", "Alice" ] console.log(users); // [ "Tom", "Kate" ]<p>Можно вставить новые элементы вместо удаляемых:</p>
44
var users = ["Tom", "Bob", "Bill", "Alice", "Kate"]; var deleted = users.splice(1,3, "Ann", "Roy"); console.log(deleted); // [ "Bob", "Bill", "Alice" ] console.log(users); // [ "Tom", "Ann", "Roy", "Kate" ]<p>Обратите внимание, что мы удалили 3 элемента (с первого по третий индексы), а вместо них вставили только два элемента.</p>
44
var users = ["Tom", "Bob", "Bill", "Alice", "Kate"]; var deleted = users.splice(1,3, "Ann", "Roy"); console.log(deleted); // [ "Bob", "Bill", "Alice" ] console.log(users); // [ "Tom", "Ann", "Roy", "Kate" ]<p>Обратите внимание, что мы удалили 3 элемента (с первого по третий индексы), а вместо них вставили только два элемента.</p>
45
<h3>concat()</h3>
45
<h3>concat()</h3>
46
<p>Метод или функция concat() нужна, чтобы объединять массивы:</p>
46
<p>Метод или функция concat() нужна, чтобы объединять массивы:</p>
47
var fruit = ["груши", "яблоки", "сливы"]; var vegetables = ["огурцы", "помидоры", "картошка"]; var products = fruit.concat(vegetables); for(var i=0; i < products.length; i++) document.write(products[i] + "<br/>");<p>И совсем необязательно объединять лишь однотипные массивы, можно и разнотипные:</p>
47
var fruit = ["груши", "яблоки", "сливы"]; var vegetables = ["огурцы", "помидоры", "картошка"]; var products = fruit.concat(vegetables); for(var i=0; i < products.length; i++) document.write(products[i] + "<br/>");<p>И совсем необязательно объединять лишь однотипные массивы, можно и разнотипные:</p>
48
var fruit = ["груши", "яблоки", "сливы"]; var prices = [20, 30, 70]; var products = fruit.concat(prices);<h3>join()</h3>
48
var fruit = ["груши", "яблоки", "сливы"]; var prices = [20, 30, 70]; var products = fruit.concat(prices);<h3>join()</h3>
49
<p>Функцией join() можем объединить в одну строку все элементы массива:</p>
49
<p>Функцией join() можем объединить в одну строку все элементы массива:</p>
50
var fruit = ["груши", "яблоки", "сливы", "абрикосы", "апельсины"]; var fruitString = fruit.join(", "); document.write(fruitString);<p>В функцию join() передаётся разделитель между элементами массива. В нашем случае в качестве разделителя используется запятая и пробел (", ").</p>
50
var fruit = ["груши", "яблоки", "сливы", "абрикосы", "апельсины"]; var fruitString = fruit.join(", "); document.write(fruitString);<p>В функцию join() передаётся разделитель между элементами массива. В нашем случае в качестве разделителя используется запятая и пробел (", ").</p>
51
<h3>sort()</h3>
51
<h3>sort()</h3>
52
<p>Функция sort() позволяет сортировать массив по возрастанию:</p>
52
<p>Функция sort() позволяет сортировать массив по возрастанию:</p>
53
var fruit = ["груши", "яблоки", "сливы", "абрикосы", "пони"]; fruit.sort(); for(var i=0; i < fruit.length; i++) document.write(fruit[i] + "<br/>");<p><em>В результате элементы будут отсортированы по алфавиту</em>:</p>
53
var fruit = ["груши", "яблоки", "сливы", "абрикосы", "пони"]; fruit.sort(); for(var i=0; i < fruit.length; i++) document.write(fruit[i] + "<br/>");<p><em>В результате элементы будут отсортированы по алфавиту</em>:</p>
54
абрикосы груши пони сливы яблоки<h3>reverse()</h3>
54
абрикосы груши пони сливы яблоки<h3>reverse()</h3>
55
<p>С помощью reverse() мы перевернём массив задом наперед:</p>
55
<p>С помощью reverse() мы перевернём массив задом наперед:</p>
56
var fruit = ["груши", "яблоки", "сливы", "абрикосы", "апельсины"]; fruit.reverse(); for(var i=0; i < fruit.length; i++) document.write(fruit[i] + "<br/>");<p><em>Итог</em>:</p>
56
var fruit = ["груши", "яблоки", "сливы", "абрикосы", "апельсины"]; fruit.reverse(); for(var i=0; i < fruit.length; i++) document.write(fruit[i] + "<br/>");<p><em>Итог</em>:</p>
57
апельсины абрикосы сливы яблоки груши<h2>Поиск индекса элемента в JS</h2>
57
апельсины абрикосы сливы яблоки груши<h2>Поиск индекса элемента в JS</h2>
58
<p>Функции indexOf() и lastIndexOf() вернут индекс 1-го и последнего включения элемента в массиве. К примеру:</p>
58
<p>Функции indexOf() и lastIndexOf() вернут индекс 1-го и последнего включения элемента в массиве. К примеру:</p>
59
var fruit = ["яблоки", "груши", "огурцы", "яблоки", "груши"]; var firstIndex = fruit.indexOf("яблоки"); var lastIndex = fruit.lastIndexOf("яблоки"); var otherIndex = fruit.indexOf("черешня"); document.write(firstIndex); // 0 document.write(lastIndex); // 3 document.write(otherIndex); // -1<p>У firstIndex значение 0, так как первое включение "яблоки" в нашем массиве приходится на индекс 0, последнее - на индекс № 3. Если же элемент в массиве отсутствует, функции indexOf() и lastIndexOf() вернут значение -1.</p>
59
var fruit = ["яблоки", "груши", "огурцы", "яблоки", "груши"]; var firstIndex = fruit.indexOf("яблоки"); var lastIndex = fruit.lastIndexOf("яблоки"); var otherIndex = fruit.indexOf("черешня"); document.write(firstIndex); // 0 document.write(lastIndex); // 3 document.write(otherIndex); // -1<p>У firstIndex значение 0, так как первое включение "яблоки" в нашем массиве приходится на индекс 0, последнее - на индекс № 3. Если же элемент в массиве отсутствует, функции indexOf() и lastIndexOf() вернут значение -1.</p>
60
<h3>every()</h3>
60
<h3>every()</h3>
61
<p>С помощью every() мы проверим, все ли наши элементы соответствуют какому-нибудь условию:</p>
61
<p>С помощью every() мы проверим, все ли наши элементы соответствуют какому-нибудь условию:</p>
62
var numbers = [ 1, -12, 8, -2, 25, 62 ]; function condition(value, index, array) { var result = false; if (value > 0) { result = true; } return result; }; var passed = numbers.every(condition); document.write(passed); // false<p>В метод every() в качестве параметра осуществляется передача функции, представляющей условие. Данная функция принимает 3 параметра:</p>
62
var numbers = [ 1, -12, 8, -2, 25, 62 ]; function condition(value, index, array) { var result = false; if (value > 0) { result = true; } return result; }; var passed = numbers.every(condition); document.write(passed); // false<p>В метод every() в качестве параметра осуществляется передача функции, представляющей условие. Данная функция принимает 3 параметра:</p>
63
function condition(value, index, array) { }<p>Здесь параметр<strong>value</strong>представляет перебираемый текущий элемент массива, параметр<strong>index</strong>представляет индекс данного элемента, а параметр<strong>array</strong>осуществляет передачу ссылки на массив.</p>
63
function condition(value, index, array) { }<p>Здесь параметр<strong>value</strong>представляет перебираемый текущий элемент массива, параметр<strong>index</strong>представляет индекс данного элемента, а параметр<strong>array</strong>осуществляет передачу ссылки на массив.</p>
64
<p>В такой функции можно проверить переданное значение элемента на его соответствие определённому условию. В нашем примере мы проверяем каждый элемент массива на условие, больше ли он нуля. Когда больше, возвращается значение<strong>true</strong>, так как элемент соответствует условию. Когда меньше, возвращается значение<strong>false</strong>, т. к. элемент не соответствует нашему условию.</p>
64
<p>В такой функции можно проверить переданное значение элемента на его соответствие определённому условию. В нашем примере мы проверяем каждый элемент массива на условие, больше ли он нуля. Когда больше, возвращается значение<strong>true</strong>, так как элемент соответствует условию. Когда меньше, возвращается значение<strong>false</strong>, т. к. элемент не соответствует нашему условию.</p>
65
<p>В результате, когда осуществляется вызов метода<strong>numbers.every(condition)</strong>он выполняет перебор всех элементов нашего массива<strong>numbers</strong>, а потом поочерёдно передает их в функцию<strong>condition</strong>. Когда эта функция возвращает значение true для всех элементов, метод every() тоже возвращает true. Когда хоть один элемент условию не соответствует, возвращается false.</p>
65
<p>В результате, когда осуществляется вызов метода<strong>numbers.every(condition)</strong>он выполняет перебор всех элементов нашего массива<strong>numbers</strong>, а потом поочерёдно передает их в функцию<strong>condition</strong>. Когда эта функция возвращает значение true для всех элементов, метод every() тоже возвращает true. Когда хоть один элемент условию не соответствует, возвращается false.</p>
66
<h3>some()</h3>
66
<h3>some()</h3>
67
<p>Функция/метод some() похожа на every() с той лишь разницей, что осуществляется проверка на соответствие условию хотя бы одного элемента.</p>
67
<p>Функция/метод some() похожа на every() с той лишь разницей, что осуществляется проверка на соответствие условию хотя бы одного элемента.</p>
68
<p>Здесь some() вернёт true. Но если соответствующих условию элементов в массиве не будет, вернётся false:</p>
68
<p>Здесь some() вернёт true. Но если соответствующих условию элементов в массиве не будет, вернётся false:</p>
69
var numbers = [ 1, -12, 8, -2, 25, 62 ]; function condition(value, index, array) { var result = false; if (value === 8) { result = true; } return result; }; var passed = numbers.some(condition); // true<h3>filter()</h3>
69
var numbers = [ 1, -12, 8, -2, 25, 62 ]; function condition(value, index, array) { var result = false; if (value === 8) { result = true; } return result; }; var passed = numbers.some(condition); // true<h3>filter()</h3>
70
<p>Как some() и every(), метод filter()принимает функцию условия. Но тут возвращается массив элементов, соответствующих условию:</p>
70
<p>Как some() и every(), метод filter()принимает функцию условия. Но тут возвращается массив элементов, соответствующих условию:</p>
71
var numbers = [ 1, -12, 8, -2, 25, 62 ]; function condition(value, index, array) { var result = false; if (value > 0) { result = true; } return result; }; var filteredNumbers = numbers.filter(condition); for(var i=0; i < filteredNumbers.length; i++) document.write(filteredNumbers[i] + "<br/>");<p><em>Вот результат вывода</em>:</p>
71
var numbers = [ 1, -12, 8, -2, 25, 62 ]; function condition(value, index, array) { var result = false; if (value > 0) { result = true; } return result; }; var filteredNumbers = numbers.filter(condition); for(var i=0; i < filteredNumbers.length; i++) document.write(filteredNumbers[i] + "<br/>");<p><em>Вот результат вывода</em>:</p>
72
<h3>forEach() и map()</h3>
72
<h3>forEach() и map()</h3>
73
<p>Функции forEach() и map() выполняют перебор элементов, осуществляя с ними некоторые операции. К примеру, чтобы вычислить квадраты чисел в массиве, делаем так:</p>
73
<p>Функции forEach() и map() выполняют перебор элементов, осуществляя с ними некоторые операции. К примеру, чтобы вычислить квадраты чисел в массиве, делаем так:</p>
74
var numbers = [ 1, 2, 3, 4, 5, 6]; for(var i = 0; i<numbers.length; i++){ var result = numbers[i] * numbers[i]; document.write("Квадрат нашего числа " + numbers[i] + " равен " + result + "<br/>"); }<p>Конструкция может быть упрощена посредством forEach():</p>
74
var numbers = [ 1, 2, 3, 4, 5, 6]; for(var i = 0; i<numbers.length; i++){ var result = numbers[i] * numbers[i]; document.write("Квадрат нашего числа " + numbers[i] + " равен " + result + "<br/>"); }<p>Конструкция может быть упрощена посредством forEach():</p>
75
var numbers = [ 1, 2, 3, 4, 5, 6]; function square(value, index, array) { var result = value * value; document.write("Квадрат нашего числа " + value + " равен " + result + "<br/>"); }; numbers.forEach(square);<p>Здесь forEach() в качестве параметра принимает ту же функцию, в которую в процессе перебора элементов передаётся перебираемый текущий элемент, и над ним выполняются операции.</p>
75
var numbers = [ 1, 2, 3, 4, 5, 6]; function square(value, index, array) { var result = value * value; document.write("Квадрат нашего числа " + value + " равен " + result + "<br/>"); }; numbers.forEach(square);<p>Здесь forEach() в качестве параметра принимает ту же функцию, в которую в процессе перебора элементов передаётся перебираемый текущий элемент, и над ним выполняются операции.</p>
76
<p>Что касается map(), то этот метод похож на forEach с той лишь разницей, что map() возвращает новый массив, где отображены результаты операций над элементами массива.</p>
76
<p>Что касается map(), то этот метод похож на forEach с той лишь разницей, что map() возвращает новый массив, где отображены результаты операций над элементами массива.</p>
77
<p>Допустим, давайте, применим map к вычислению квадратов чисел нашего массива:</p>
77
<p>Допустим, давайте, применим map к вычислению квадратов чисел нашего массива:</p>
78
var numbers = [ 1, 2, 3, 4, 5, 6]; function square(value, index, array) { return result = value * value; }; var squareArray = numbers.map(square); document.write(squareArray);<p>Функция, передаваемая в map(), получает текущий перебираемый элемент, выполняя над ним операции и возвращая некоторое значение. Именно это значение и попадает в результирующий массив<strong>squareArray</strong>.</p>
78
var numbers = [ 1, 2, 3, 4, 5, 6]; function square(value, index, array) { return result = value * value; }; var squareArray = numbers.map(square); document.write(squareArray);<p>Функция, передаваемая в map(), получает текущий перебираемый элемент, выполняя над ним операции и возвращая некоторое значение. Именно это значение и попадает в результирующий массив<strong>squareArray</strong>.</p>
79
79