HTML Diff
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 + " элемента: &lt;br/&gt;"); for(var i=0; i &lt; fruit.length; i++) document.write(fruit[i] + "&lt;br/&gt;");<p>Фактически, длиной нашего массива в JavaScript будет индекс последнего элемента, плюс единица. К примеру:</p>
14 var fruit = new Array(); fruit[0] = "груши"; fruit[1] = "яблоки"; fruit[2] = "сливы"; document.write("В массиве fruit " + fruit.length + " элемента: &lt;br/&gt;"); for(var i=0; i &lt; fruit.length; i++) document.write(fruit[i] + "&lt;br/&gt;");<p>Фактически, длиной нашего массива в JavaScript будет индекс последнего элемента, плюс единица. К примеру:</p>
15 var users = new Array(); // в массиве 0 элементов users[0] = "Kate"; users[1] = "Tom"; users[4] = "Sam"; for(var i=0; i&lt;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&lt;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 + " элемента: &lt;br/&gt;"); document.write(fruit); // груши,яблоки,сливы,вишни,абрикосы<h3>pop()</h3>
28 var fruit = []; fruit.push("груши"); fruit.push("яблоки"); fruit.push("сливы"); fruit.push("вишни","абрикосы"); document.write("В массиве fruit " + fruit.length + " элемента: &lt;br/&gt;"); 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 + "&lt;br/&gt;"); document.write("В массиве fruit " + fruit.length + " элемента: &lt;br/&gt;"); for(var i=0; i &lt;fruit.length; i++) document.write(fruit[i] + "&lt;br/&gt;");<p><em>Итоговый вывод</em>:</p>
30 var fruit = ["груши", "яблоки", "сливы"]; var lastFruit = fruit.pop(); // из массива извлекается последний элемент document.write(lastFruit + "&lt;br/&gt;"); document.write("В массиве fruit " + fruit.length + " элемента: &lt;br/&gt;"); for(var i=0; i &lt;fruit.length; i++) document.write(fruit[i] + "&lt;br/&gt;");<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 + "&lt;br/&gt;"); document.write("В массиве fruit " + fruit.length + " элемента: &lt;br/&gt;"); for(var i=0; i &lt;fruit.length; i++) document.write(fruit[i] + "&lt;br/&gt;");<p><em>Вывод следующий</em>:</p>
33 var fruit = ["груши", "яблоки", "сливы"]; var firstFruit = fruit.shift(); document.write(firstFruit + "&lt;br/&gt;"); document.write("В массиве fruit " + fruit.length + " элемента: &lt;br/&gt;"); for(var i=0; i &lt;fruit.length; i++) document.write(fruit[i] + "&lt;br/&gt;");<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 &lt; products.length; i++) document.write(products[i] + "&lt;br/&gt;");<p>И совсем необязательно объединять лишь однотипные массивы, можно и разнотипные:</p>
47 var fruit = ["груши", "яблоки", "сливы"]; var vegetables = ["огурцы", "помидоры", "картошка"]; var products = fruit.concat(vegetables); for(var i=0; i &lt; products.length; i++) document.write(products[i] + "&lt;br/&gt;");<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 &lt; fruit.length; i++) document.write(fruit[i] + "&lt;br/&gt;");<p><em>В результате элементы будут отсортированы по алфавиту</em>:</p>
53 var fruit = ["груши", "яблоки", "сливы", "абрикосы", "пони"]; fruit.sort(); for(var i=0; i &lt; fruit.length; i++) document.write(fruit[i] + "&lt;br/&gt;");<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 &lt; fruit.length; i++) document.write(fruit[i] + "&lt;br/&gt;");<p><em>Итог</em>:</p>
56 var fruit = ["груши", "яблоки", "сливы", "абрикосы", "апельсины"]; fruit.reverse(); for(var i=0; i &lt; fruit.length; i++) document.write(fruit[i] + "&lt;br/&gt;");<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 &gt; 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 &gt; 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 &gt; 0) { result = true; } return result; }; var filteredNumbers = numbers.filter(condition); for(var i=0; i &lt; filteredNumbers.length; i++) document.write(filteredNumbers[i] + "&lt;br/&gt;");<p><em>Вот результат вывода</em>:</p>
71 var numbers = [ 1, -12, 8, -2, 25, 62 ]; function condition(value, index, array) { var result = false; if (value &gt; 0) { result = true; } return result; }; var filteredNumbers = numbers.filter(condition); for(var i=0; i &lt; filteredNumbers.length; i++) document.write(filteredNumbers[i] + "&lt;br/&gt;");<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&lt;numbers.length; i++){ var result = numbers[i] * numbers[i]; document.write("Квадрат нашего числа " + numbers[i] + " равен " + result + "&lt;br/&gt;"); }<p>Конструкция может быть упрощена посредством forEach():</p>
74 var numbers = [ 1, 2, 3, 4, 5, 6]; for(var i = 0; i&lt;numbers.length; i++){ var result = numbers[i] * numbers[i]; document.write("Квадрат нашего числа " + numbers[i] + " равен " + result + "&lt;br/&gt;"); }<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 + "&lt;br/&gt;"); }; 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 + "&lt;br/&gt;"); }; 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