#статьи
Перебираем, сортируем, фильтруем и делаем с массивами всякое.
Иллюстрация: Оля Ежак для Skillbox Media
Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.
Это статья для начинающих фронтенд-разработчиков, которые изучают JavaScript и перешли к методам массивов. Рассмотрим основные из них.
Материал разбит на три части. В первой части мы настроим рабочее окружение, чтобы вы могли повторять примеры и экспериментировать с массивами. Если у вас уже всё настроено — пропускайте этот раздел.
Во второй части мы по группам разберём основные методы работы с массивами. Будем объяснять простым языком, начиная с лёгких методов.
В третьей части статьи будет подборка задач на закрепление темы. Попробуйте их решить самостоятельно, а затем сверьте результаты.
Содержание
Интерпретатор JavaScript встроен в любой браузер, поэтому для работы с ним не нужно ничего дополнительно устанавливать. Достаточно открыть браузер, перейти в консоль разработчика и уже можно начинать писать код.
Если у вас установлен Google Chrome, то сперва откройте какую-то страницу. После кликните правой кнопкой мыши на этой странице и выберите в контекстном меню пункт Просмотреть код. Перед вами появится окно с инструментами разработчика, в котором нужно выбрать вкладку Консоль.
Вкладка «Консоль» в инструментах разработчика Google Chrome. Введите любую строку или число и убедитесь, что интерпретатор JavaScript работает
Скриншот: Google Chrome / Skillbox MediaВы можете оставаться в консоли разработчика, но рекомендуем выделить несколько минут на настройку и запустить JavaScript в редакторе VS Code.
Для начала откройте терминал на вашем компьютере и выполните команду:
node --version
Если появилось сообщение об ошибке, значит, на вашем компьютере не установлена Node.js — платформа для выполнения JS-кода вне браузера:
Пример сообщения об ошибке, если на компьютере не установлена платформа Node.js
Скриншот: Windows PowerShell / Skillbox MediaNode.js можно скачать с официального сайта и установить как обычную программу. После установки перезапустите терминал и убедитесь, что вместо сообщения об ошибке на экране высвечивается номер версии.
Главная страница официального сайта Node.js
Скриншот: Node.js / Skillbox MediaНомер версии платформы Node.js после её установки на компьютер
Скриншот: Windows PowerShell / Skillbox MediaЗакрывайте терминал, он нам больше не понадобится. Дальше мы будем работать в редакторе VS Code — скачайте и установите его, если нужно.
В VS Code перейдите в маркетплейс расширений и установите Code Runner — у вас появится кнопка запуска кода в правом верхнем углу окна редактора.
Расширение Code Runner после установки из маркетплейса VS Code
Скриншот: Visual Studio Code / Skillbox MediaПочти готово. Создайте в редакторе папку, поместите в неё файл с любым именем и расширением .js. Напишите проверочную команду, запустите Code Runner и убедитесь, что JS-код выполнился в редакторе:
console.log('Привет, массив!');Пример выполнения JS-кода в редакторе VS Code
Скриншот: Visual Studio Code / Skillbox MediaТеперь у вас есть всё необходимое для изучения методов массивов. Последняя рекомендация и начинаем: в VS Code под каждую группу методов рекомендуем создавать отдельный файл. Так будет удобно.
Для начала объявим переменную и добавим в неё массив с фруктами:
const fruits = ['?', '?', '?', '?', '?'];
Теперь внесём во фруктовый массив первую запись.
Обратимся к переменной с нашим массивом, через точечную запись получим доступ к методу unshift() и перечислим нужные элементы:
array.unshift(element1, ..., elementN)
Новые элементы попадут в начало массива, и длина массива изменится:
const fruits = ['?', '?', '?', '?', '?'];
fruits.unshift('Список покупок:');
console.log(fruits);
// '[ Список покупок:', '?', '?', '?', '?', <'?' ]
Воспользуемся методом push() и добавим элементы в конец массива:
arraypush(element1, ..., elementN)const fruits = ['Список покупок:', '?', '?', '?', '?', '?'];
fruits.push('Итого: 3000 рублей');
console.log(fruits);
// ['Список покупок:', '?', '?', '?', '?', '?', 'Итого: 3000 рублей']
Мы передумали добавлять запись в начало массива, но не хотим её потерять. В таких случаях помогает метод shift(): он извлекает первый элемент и, если нужно, позволяет его поместить в новую переменную:
array.shift()const fruits = ['Список покупок:', '?', '?', '?', '?', '?', 'Итого: 3000 рублей'];
const firstElement = fruits.shift();
// Массив без первого элемента
console.log(fruits);
// [ '?', '?', '?', '?', '?', 'Итого: 3000 рублей' ]
// Первый элемент, сохранённый в отдельной переменной
console.log(firstElement); // Список покупок:
С помощью метода pop() удалим последний элемент из конца массива, но только теперь не будем сохранять запись в отдельную переменную:
array.pop()const fruits = ['?', '?', '?', '?', '?', 'Итого: 3000 рублей'];
fruits.pop();
// Массив после извлечения последнего элемента
console.log(fruits); // [ '?', '?', '?', '?', '?' ]
Метод splice() изменяет содержимое массива и может выглядеть запутанно:
array.splice(start, [deleteCount, item1, item2, ...])
Однако если разбираться в синтаксисе по частям, то ничего сложного:
- start — это начальный индекс элемента массива, с которого мы хотим начать изменения. Данный параметр может принимать отрицательные индексы, которые указывают на позицию элемента с конца массива.
- deleteCount — это количество элементов, которые мы хотим удалить из массива. Если указать 0, то все элементы останутся. А если не указать никакого значения, то метод удалит все элементы начиная со стартового индекса — того, что мы записали в параметре start.
- item1, item2, … — это список новых элементов, которые нужно добавить после стартового индекса. Эти элементы указывать необязательно.
Теперь посмотрим на примерах варианты использования метода splice().
В первую очередь удалим несколько элементов из середины массива:
const fruits = ['?', '?', '?', '?', '?'];
// Удаляем два элемента начиная с индекса 1
fruits.splice(1, 2);
console.log(fruits); // [ '?', '?', '?' ]
Заполним массив новыми элементами вместо удалённых:
const fruits = ['?', '?', '?'];
// Добавляем два новых элемента начиная с индекса 1
fruits.splice(1, 0, '?', '?');
console.log(fruits); // [ '?', '?', '?', '?', '?' ]
Заменим несколько старых элементов на новые:
const fruits = ['?', '?', '?', '?', '?'];
// Меняем два элемента начиная с индекса 3
fruits.splice(3, 2, '?', '?');
console.log(fruits); // [ '?', '?', '?', '?', '?' ]
Оставим в массиве только два фрукта, а остальные удалим:
const fruits = ['?', '?', '?', '?', '?'];
// Удаляем все элементы начиная с индекса 2
fruits.splice(2);
console.log(fruits); // [ '?', '?' ]
Все методы этой группы возвращают новый массив, сохраняя неизменными исходные данные. Создадим исходный массив, на котором попрактикуемся:
const animals = ['?', '?', '?', '?', '?'];
Метод slice() позволяет скопировать часть элементов в новый массив:
array.slice([start, end]);
Разбираемся в синтаксисе:
- start — это стартовый индекс, с которого начинается копирование элементов. Если не указать, то всё начнётся с нулевого индекса.
- end — это конечный индекс, до которого будут копироваться элементы. Если не указать, то скопируются все элементы от стартового индекса до конца выбранного массива.
Стартовый и конечный индексы могут принимать отрицательные аргументы. Это будет означать, что отсчёт элементов нужно проводить с конца массива.
const animals = ['?', '?', '?', '?', '?'];
// Формируем новый массив из диких животных
const wildAnimals = animals.slice(2, 4);
console.log(wildAnimals); // ['?', '?']
Метод concat() объединяет несколько массивов в один и при необходимости позволяет добавить к ним любые дополнительные значения:
array.concat (arg1, arg2, ..., argN)const animals = ['?', '?', '?', '?', '?'];
const birds = ['?', '?', '?']; // Массив с птицами
const fish = ['?', '?', '?']; // Массив с рыбами
// Новый объединённый массив с двумя записями
const combinedArray = animals.concat('добавим птиц =>', birds, 'не забудем про рыб =>', fish);
console.log(combinedArray);
// ['?', '?', '?', '?', '?', добавим птиц =>''?', '?', '?', ;'не забудем про рыб =>''?', '?''?']
Метод filter() перебирает массив и выбирает из него элементы, которые проходят проверку по заданному условию. Это условие записывается в функции обратного вызова (колбэк-функции). Если ни один элемент не будет соответствовать условию, то метод filter() создаст новый пустой массив:
array.filter(callback)const animals = ['?', '?', '?', '?', '?'];
// Выбираем из животных только хищников
const predators = animals.filter(animal => animal === '?' || animal === '?');
console.log(predators); // ['?', '?']
А вот пример формирования пустого массива:
const animals = ['?', '?', '?', '?', '?'];
// Выбираем из животных только слонов
const elephants = animals.filter(animal => animal === '?');
// Слонов в исходном массиве не оказалось
console.log(elephants); // []
Метод map() обращается к каждому элементу исходного массива, меняет их через функцию обратного вызова и записывает результат в новый массив:
array.map(callback)const animals = ['?', '?', '?', '?', '?'];
// Вакцинируем наших животных
const vaccinatedAnimals = animals.map(animal => `${animal}?`);
console.log(vaccinatedAnimals);
// ['??', '??', '??', '??', '??']
Методы этой группы не создают и не изменяют исходный массив. Они лишь выполняют определённые действия с переданным массивом и возвращают запрашиваемый результат. Попрактикуемся на транспортных средствах:
const vehicles = ['?', '?', '?', '?', '?', '?️', '?', '?', '✈️', '?'];
Метод forEach() перебирает каждый элемент массива с помощью функции обратного вызова. Однако в отличие от map(), метод forEach() не возвращает новый массив и не изменяет текущий. То есть вы можете что-то сделать с каждым элементом, посмотреть результат и не записывать его в новый массив. Это удобный аналог цикла for в JavaScript для работы с массивами.
array.forEach(callback)
Допустим, мы хотим посмотреть список транспортных средств в массиве. Мы пока ничего не планируем делать, и вот для этого подходит forEach():
const vehicles = ["?", "?", "?", "?", "?", "?️", "?", "?", "✈️", "?"];
vehicles.forEach((vehicle) => console.log(vehicle));
/*
* ?
* ?
* ?
* ?
* ?
* ?️
* ?
* ?
* ✈️
* ?
*/
Если мы перепишем код с помощью цикла for, то получится более громоздко. Ещё различие: forEach() всегда доходит до конца и перебираем все элементы массива. А вот цикл for можно остановить оператором break. Поэтому в массивах хорошей практикой считается использовать forEach() вместо for.
const vehicles = ["?", "?", "?", "?", "?", "?️", "?", "?", "✈️", "?"];
for (let i = 0; i < vehicles.length; i++) {
console.log(vehicles[i]);
}
/*
* ?
* ?
* ?
* ?
* ?
* ?️
* ?
* ?
* ✈️
* ?
*/
Метод every() проходится функцией обратного вызова по всему массиву и возвращает булево значение true, если каждый элемент удовлетворяет условию. Если есть хотя бы одно несовпадение — метод every() вернёт false:
array.every(callback)// Общий список транспортных средств
const vehicles = ["?", "?", "?", "?", "?", "?️", "?", "?", "✈️", "?"];
// Создаём функцию обратного вызова для метода every. Она проверяет, является ли переданное транспортное средство (vehicle) наземным
const isLandTransport = (vehicle) => {
// Список наземных транспортных средств
const landTransports = ["?", "?", "?", "?", "?", "?️", "?", "?"];
// Цикл перебора всех наземных транспортных средств в массиве landTransports
for (let i = 0; i < landTransports.length; i++) {
// Если текущее транспортное средство (vehicle) совпадает с элементом из landTransports, то возвращается значение true
if (vehicle === landTransports[i]) {
return true;
}
}
// Если ни одно из наземных транспортных средств не совпадает с vehicle, то возвращается значение false
return false;
};
// Используем метод every для проверки всех элементов массива vehicles
const allLandTransport = vehicles.every(isLandTransport);
console.log(allLandTransport); // Результат false, потому что в массиве есть ✈️ самолёт и ? корабль
Метод some() после перебора массива возвращает true, если хотя бы один элемент соответствует условию. Если совпадений нет — метод вернёт false. Ещё важно знать, что метод some() останавливается на первом совпадении и не перебирает все элементы — ищет хотя бы один подходящий элемент:
array.some(callback)const vehicles = ["?", "?", "?", "?", "?", "?️", "?", "?", "✈️", "?"];
// Создаём функцию обратного вызова для метода some(). Она проверяет, является ли переданное транспортное средство (vehicle) воздушным
const isAirTransport = (vehicle) => {
const airTransports = ["✈️", "?", "?"];
return airTransports.some((transport) => transport === vehicle);
};
// Используем метод some() для проверки наличия хотя бы одного воздушного транспортного средства в массиве vehicles
const hasAirTransport = vehicles.some(isAirTransport);
console.log(hasAirTransport); // true, так как в массиве есть ✈️ самолёт
Эта группа методов позволяет найти конкретный элемент, его индекс или убедиться, что он есть в массиве. Потренируемся искать спортинвентарь:
const sportsEquipment = ["⚽", "?", "?", "?", "?", "?", "?", "?", "?"];
Метод indexOf принимает два аргумента: искомый элемент и индекс, с которого должен начинаться поиск. Если в массиве несколько одинаковых элементов, то indexOf вернёт только первый индекс. В случае если нужного элемента не будет, метод вернёт отрицательный индекс со значением -1:
array.indexOf(searchElement, [fromIndex])
Объяснение синтаксиса:
- searchElement — элемент, который мы хотим найти в массиве.
- fromIndex — номер индекса, с которого должен стартовать поиск. Если этот параметр не указать, то поиск начнётся с начала массива.
Найдём индекс первого баскетбольного мяча:
const sportsEquipment = ["⚽", "?", "?", "?", "?", "?", "?", "?", "?"];
// Второй аргумент не указываем, чтобы поиск начинался с начала
const basketballIndex = sportsEquipment.indexOf("?");
console.log(basketballIndex); // 1
Поищем индекс второго баскетбольного мяча:
const sportsEquipment = ["⚽", "?", "?", "?", "?", "?", "?", "?", "?"];
// Указываем второй аргумент, чтобы поиск начинался с третьего индекса
const nextBasketballIndex = sportsEquipment.indexOf("?", 3);
console.log(nextBasketballIndex); // 4
Теперь попробуем отыскать элемент, которого нет в массиве:
const sportsEquipment = ["⚽", "?", "?", "?", "?", "?", "?", "?", "?"];
const tennisBallIndex = sportsEquipment.indexOf("?");
console.log(tennisBallIndex); // -1
Метод lastIndexOf() работает практически так же, как и метод indexOf(). Разница только в том, что lastIndexOf() начинает поиск элемента с конца и возвращает индекс последнего вхождения указанного элемента в массиве:
array.lastIndexOf(searchElement, [fromIndex])
Разыщем индекс последнего баскетбольного мяча в массиве:
const sportsEquipment = ["⚽", "?", "?", "?", "?", "?", "?", "?", "?"];
const lastBasketballIndex = sportsEquipment.lastIndexOf("?");
console.log(lastBasketballIndex); // 8
Добавим к методу lastIndexOf() второй аргумент и посмотрим результат:
const sportsEquipment = ["⚽", "?", "?", "?", "?", "?", "?", "?", "?"];
// Найдём индекс последнего вхождения теннисной ракетки (?), начиная с индекса 2
const lastTennisRacketIndex = sportsEquipment.lastIndexOf("?", 2);
console.log(lastTennisRacketIndex); // -1, до индекса 2 "?" нет
// Метод проверил нулевой, первый и второй индекс: "⚽", "?", "?"
Немного изменим второй аргумент, чтобы элемент попал в выборку:
const sportsEquipment = ["⚽", "?", "?", "?", "?", "?", "?", "?", "?"];
// Найдём индекс последнего вхождения теннисной ракетки (?) начиная с индекса 3
const lastTennisRacketIndex = sportsEquipment.lastIndexOf("?", 3);
console.log(lastTennisRacketIndex); // 3
Метод includes() возвращает булево значение true или false. Результат зависит от того, присутствует ли нужный элемент в массиве или же нет. Опционально можно указать индекс, с которого метод начнём проверку:
array.includes(searchElement, [fromIndex])const sportsEquipment = ["⚽", "?", "?", "?", "?", "?", "?", "?", "?"];
// Проверяем, есть ли в массиве баскетбольный мяч (?)
const hasBasketball = sportsEquipment.includes("?");
console.log(hasBasketball); // true
// Проверяем, есть ли в массиве теннисный мяч (?)
const hasTennisBall = sportsEquipment.includes("?");
console.log(hasTennisBall); // false
// Проверяем, есть ли в массиве баскетбольный мяч (?), начиная с 4-го индекса
const hasBasketballFromIndex = sportsEquipment.includes("?", 4);
console.log(hasBasketballFromIndex); // true
Метод find() принимает в качестве аргумента функцию обратного вызова, которая определяет условия для поиска элемента. Если нужный элемент будет найден, то find() его вернёт. Однако если ни один элемент не будет соответствовать условию, то вернётся undefined (значение неопределённо):
array.find(callback)
Поищем волейбольный мяч:
const sportsEquipment = ["⚽", "?", "?", "?", "?", "?", "?", "?", "?"];
const firstVolleyball = sportsEquipment.find((equipment) => equipment === "?");
console.log(firstVolleyball); // ?
Усложним условие и поищем что-то кроме мяча:
const sportsEquipment = ["⚽", "?", "?", "?", "?", "?", "?", "?", "?"];
const firstNonBall = sportsEquipment.find((equipment) => !["⚽", "?", "?", "?"].includes(equipment));
console.log(firstNonBall); // ?
Эти методы позволяют сортировать, разворачивать и получать единое значение на основе массива. Поэкспериментируем с вредным фастфудом:
const foods = ["?", "?", "?", "?", "?", "?", "?", "?", "?", "?"];
Метод sort() берёт исходный массив, сортирует его определённым образом и возвращает. То есть после применения метода исходный массив изменится.
По умолчанию элементы сортируются в лексикографическом порядке — как строки. Если в массиве будут числа, то метод sort() преобразует их в строки и после отсортирует по кодам символов Unicode. Это произойдёт и с эмодзи.
В нашем массиве есть бургер и пицца:
- U+1F354 — юникод бургера ?
- U+1F355 — юникод пиццы ?
У символа бургера меньший юникод, поэтому в лексикографическом порядке сортировки он будет перед пиццей. Так же будет и с остальными эмодзи:
const foods = ["?", "?", "?", "?", "?", "?", "?", "?", "?", "?"];
// Сортируем массив foods в лексикографическом порядке
foods.sort();
console.log(foods); // ['?', '?', '?', '?', '?', '?', '?', '?', '?', '?']
/**
? — Хот-дог — U+1F32D
? — Тако — U+1F32E
? — Гамбургер — U+1F354
? — Кусок пиццы — U+1F355
? — Картофель фри — U+1F35F
? — Спагетти — U+1F35D
? — Суши — U+1F363
? — Кусок торта — U+1F370
? — Зелёный салат — U+1F957
? — Сэндвич — U+1F96A
*/
Метод sort() позволяет сортировать массив по любому критерию, который вам нужен. Например, по длине строки: от меньшей к большей. Для этого мы должны создать функцию обратного вызова для сравнения длины строк. Переведём эмодзи в текст и посмотрим, как изменится порядок сортировки:
const foods = ["Пицца", "Гамбургер", "Хот-дог", "Картофель фри", "Салат", "Суши", "Спагетти", "Тако", "Сэндвич", "Торт"];
// Создаём функцию для получения длины строки
const getStringLength = (str) => {
return str.length;
};
// Сортируем массив по длине строк
foods.sort((a, b) => {
return getStringLength(a) - getStringLength(b);
});
console.log(foods);
/**
[
'Суши',
'Тако',
'Торт',
'Пицца',
'Салат',
'Хот-дог',
'Сэндвич',
'Спагетти',
'Гамбургер',
'Картофель фри'
]
*/
Метод reverse() переставляет порядок элементов в исходном массиве: последний элемент становится первым, первый — последним и так далее.
array.reverse()const foods = ["?", "?", "?", "?", "?", "?", "?", "?", "?", "?"];
foods.reverse();
console.log(foods); // ['?', '?', '?', '?', '?', '?', '?', '?', '?', '?']
Теперь, если вы проверите индекс первого элемента, то им окажется кусок торта, а не пицца. Это значит, что порядок элементов в массиве изменился:
const foods = ["?", "?", "?", "?", "?", "?", "?", "?", "?", "?"];
foods.reverse();
console.log(foods[0]); // ?
Метод reduce() применяет функцию обратного вызова последовательно для каждого элемента массива, сохраняет промежуточный результат и выводит общее значение. Это может быть объединённые строки, сумма чисел и так далее.
Разберём процесс по шагам:
- Функция получает начальное значение.
- Переходит к первому элементу массива и начальному значению.
- Получается промежуточный результат, который становится новым начальным значением.
- Функция переходит к следующему элементу массива и обновлённому начальному значению.
- Процесс повторяется, пока функция не пройдёт по всем элементам.
Метод reduce() самый сложный для понимания, поэтому далее массив с эмодзи мы заменим массивом чисел. Так будет проще понять его принцип:
const numbers = [1, 2, 3, 4, 5];
// Используем метод reduce() для нахождения суммы всех элементов
const sum = numbers.reduce((accumulator, currentValue) => {
// На каждой итерации добавляем текущее значение (currentValue) к аккумулятору (accumulator)
return accumulator + currentValue;
}, 0); // Начальное значение аккумулятора 0
console.log(sum); // 15
Рассмотрим работу метода reduce() на каждом этапе итерации:
Накопленное значение
accumulatorТекущее значение currentValueСумма
sumПервая итерация011Вторая итерация123Третья итерация336Четвёртая итерация6410Пятая итерация105
15А вот так выглядит синтаксис метода reduce():
array.reduce(callback, [initialValue]);
- callback — это функция, которая будет вызываться для каждого элемента массива. Она может принимать четыре аргумента:
- accumulator — это накопленное значение, которое обновляется после каждого вызова функции.
- currentValue — текущий обрабатываемый элемент массива.
- currentIndex — индекс текущего обрабатываемого элемента. Этот параметр не обязательный, если указано значение initialValue.
- array — это сам массив, на котором мы вызываем метод reduce(). Это также необязательный параметр, если задано initialValue.
- initialValue — это начальное значение аккумулятора, с которого начинается накопление. Если не передано, то начальным значением становится первый элемент массива и перебор идёт со второго элемента.
Ниже будет код, которые поможет лучше разобраться в синтаксисе метода reduce(). Запустите его и посмотрите, что происходит на каждой итерации:
const numbers = [1, 2, 3, 4, 5];
// С помощью метода reduce() создаём строку с информацией о каждом элементе массива
const result = numbers.reduce((accumulator, currentValue, currentIndex, array) => {
// Выводим информацию о текущей итерации
console.log(`Итерация ${currentIndex}:`);
console.log(` Текущий элемент: ${currentValue}`);
console.log(` Текущий индекс: ${currentIndex}`);
console.log(` Исходный массив: [${array.join(', ')}]`);
console.log(` Аккумулятор до: ${accumulator}`);
// Формируем строку с информацией о текущем элементе и добавляем её к аккумулятору
accumulator += `Элемент ${currentIndex + 1}: ${currentValue}\n`;
console.log(` Аккумулятор после: ${accumulator}\n`);
// Возвращаем обновлённый аккумулятор для следующей итерации
return accumulator;
}, ''); // Начальное значение аккумулятора — пустая строка
// Итоговый результат
console.log('Результат:\n' + result);
/*
Ожидаемый вывод в консоли:
Итерация 0:
Текущий элемент: 1
Текущий индекс: 0
Исходный массив: [1, 2, 3, 4, 5]
Аккумулятор до:
Аккумулятор после: Элемент 1: 1
Итерация 1:
Текущий элемент: 2
Текущий индекс: 1
Исходный массив: [1, 2, 3, 4, 5]
Аккумулятор до: Элемент 1: 1
Аккумулятор после: Элемент 1: 1
Элемент 2: 2
*/
Работа с массивами важна для эффективного программирования и изучения популярных фреймворков вроде React. Поэтому чем чаще вы практикуетесь, тем глубже погружаетесь в тему. В этом разделе мы собрали задачи на методы массивов, которые мы разбирали в статье.
Перед вами список покупок: ?, ?, ?, ?, ?, ?. Создайте для этого списка массив, а затем добавьте по одному новому овощу в начало и конец списка. Добавьте ещё овощей и уберите из массива все фрукты.
Решение
// Шаг 1: Создаём массив с тремя овощами и тремя фруктами
const groceryList = ['?', '?', '?', '?', '?', '?'];
// Шаг 2: Добавляем по одному овощу в начало и конец массива
groceryList.unshift('?'); // Добавляем брокколи в начало
groceryList.push('?'); // Добавляем баклажан в конец
// Шаг 3: Заменяем три фрукта на овощи
groceryList.splice(4, 3, '?', '?', '?️');
// Заменяем яблоко, банан и виноград на картофель, помидор и перец
// Наш итоговый овощной массив
console.log(groceryList);
// ['?', '?', '?', '?', '?', '?', '?️', '?']
В трёх зоопарках содержатся следующие виды животных:
- В первом зоопарке: ? бурундук, ?️ белка, ? лев, ??? три орла, ? обезьяна, ? змея, ? сова, ? слон, ? черепаха, ? медведь.
- Во втором зоопарке: ? панда, ? коала, ? утка, ? жираф, ??? три попугая, ? орёл, ? тигр, ? пингвин, ? осьминог, ? бабочка, ? ёж.
- В третьем зоопарке: ? лягушка, ? обезьяна, ?? два орла, ??? три попугая, ? жираф, ? змея, ? черепаха, ? лиса.
Поместите животных из каждого зоопарка в отдельный массив: zoo1, zoo2 и zoo3. Объедините все три массива в один общий — allAnimals.
Выберите из общего массива allAnimals всех ? орлов и ? попугаев. Сохраните их в новый массив eaglesParrots. Отправьте орлов и попугаев в ветклинику ? и сохраните результат в новом массиве treatedAnimals.
Решение
// Помещаем животных из каждого зоопарка в отдельный массив
const zoo1 = ['?', '?️', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?'];
const zoo2 = ['?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?'];
const zoo3 = ['?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?'];
// Объедините все три массива в один общий
const allAnimals = zoo1.concat(zoo2, zoo3);
// Выбираем из общего массива всех орлов и попугаев
const eaglesParrots = allAnimals.filter(animal => animal === '?' || animal === '?');
// Отправляем орлов и попугаев в ветклинику ?
const treatedAnimals = eaglesParrots.map(animal => `${animal}?`);
console.log(treatedAnimals);
// ['??', '??', '??', >'??', '??', '??', '??', <'??', '??', '??', '??', '??']
У вас есть массив с различными транспортными средствами:
const vehicles = ["?", "?", "?", "?", "?", "?️", "?", "?", "✈️", "?"];
Напишите программу, которая будет выводить информацию о каждом транспортном средстве в консоль в таком формате:
Транспортное средство <индекс>: <символ>
Пример вывода:
Транспортное средство 1: ?
Транспортное средство 2: ?
Транспортное средство 3: ?
...
Решение
const vehicles = ["?", "?", "?", "?", "?", "?️", "?", "?", "✈️", "?"];
// Пишем функцию для вывода информации о каждом транспортном средстве
const displayVehicleInfo = (vehicle, index) => {
// Выводим информацию в формате "Транспортное средство <индекс>: <символ>"
console.log(`Транспортное средство ${index + 1}: ${vehicle}`);
};
// Используем метод forEach для вызова функции displayVehicleInfo для каждого элемента массива
vehicles.forEach((vehicle, index) => {
displayVehicleInfo(vehicle, index);
});
/**
Транспортное средство 1: ?
Транспортное средство 2: ?
Транспортное средство 3: ?
Транспортное средство 4: ?
Транспортное средство 5: ?
Транспортное средство 6: ?️
Транспортное средство 7: ?
Транспортное средство 8: ?
Транспортное средство 9: ✈️
Транспортное средство 10: ?
*/
В разделе про метод every() мы использовали цикл for для перебора всех наземных транспортных средств. Перепишите код, чтобы вместо цикла в теле функции оказался метод includes(). Проверьте результат:
const vehicles = ["?", "?", "?", "?", "?", "?️", "?", "?", "✈️", "?"];
const isLandTransport = (vehicle) => {
const landTransports = ["?", "?", "?", "?", "?", "?️", "?", "?"];
for (let i = 0; i < landTransports.length; i++) {
if (vehicle === landTransports[i]) {
return true;
}
}
return false;
};
const allLandTransport = vehicles.every(isLandTransport);
console.log(allLandTransport); // false, в массиве есть ✈️ и ?
Решение
const vehicles = ["?", "?", "?", "?", "?", "?️", "?", "?", "✈️", "?"];
const isLandTransport = (vehicle) => {
const landTransports = ["?", "?", "?", "?", "?", "?️", "?", "?"];
// Проверяем, входит ли переданное транспортное средство в список наземных транспортных средств
return landTransports.includes(vehicle);
};
const allLandTransport = vehicles.every(isLandTransport);
console.log(allLandTransport); // false, потому что в массиве есть ✈️ и ?
У вас есть массив с блюдами. Отсортируйте его по длине строк: от меньшего описания блюд к большему. Результат выведите в консоль:
const foodDescriptions = [
"Салат Цезарь",
"Паста Болоньезе",
"Ролл Филадельфия",
"Суп Том Ям",
"Стейк Медиум",
"Пицца Маргарита",
"Чизкейк Нью-Йорк",
"Хот-дог с сыром",
"Суши Филадельфия",
"Фруктовый салат",
];
Решение
const foodDescriptions = [
"Салат Цезарь",
"Паста Болоньезе",
"Ролл Филадельфия",
"Суп Том Ям",
"Стейк Медиум",
"Пицца Маргарита",
"Чизкейк Нью-Йорк",
"Хот-дог с сыром",
"Суши Филадельфия",
"Фруктовый салат",
];
// Создаём функцию для получения длины строки
const getStringLength = (str) => {
return str.length;
};
// Сортируем массив по длине строк от меньшей к большей
foodDescriptions.sort((a, b) => {
return getStringLength(a) - getStringLength(b);
});
console.log(foodDescriptions);
/**
[
'Суп Том Ям',
'Салат Цезарь',
'Стейк Медиум',
'Паста Болоньезе',
'Пицца Маргарита',
'Хот-дог с сыром',
'Фруктовый салат',
'Ролл Филадельфия',
'Чизкейк Нью-Йорк',
'Суши Филадельфия'
]
*/
У вас есть массив строк с фруктами. Посчитайте общее количество букв:
const fruits = ["яблоко", "банан", "киви", "манго", "груша"];
Решение
const fruits = ["яблоко", "банан", "киви", "манго", "груша"];
const totalLetters = fruits.reduce((accumulator, currentValue) => {
// Добавляем длину текущей строки к аккумулятору
return accumulator + currentValue.length;
}, 0); // Начальное значение аккумулятора 0
console.log(totalLetters); // 25
Вы познакомились с основными методами массивов в JavaScript и их базовым синтаксисом. Для дальнейшего изучения массивов советуем обращаться к веб-документации MDN Web Docs от компании Mozilla.
Курс с трудоустройством: «Профессия Фронтенд-разработчик + ИИ»
Узнать о курсе
<!DOCTYPE html>
<html class="l-html" lang="ru">
<head>
<script>
mindbox = window.mindbox || function() { mindbox.queue.push(arguments); };
mindbox.queue = mindbox.queue || [];
mindbox('create', {
endpointId: 'skillbox.skillboxMediaWebsite'
});
</script>
<script src="https://api.s.mindbox.ru/scripts/v1/tracker.js" async></script>
<script>window.yaContextCb = window.yaContextCb || []</script>
<script src="https://yandex.ru/ads/system/context.js" async></script>
<!-- Google Tag Manager -->
<script async data-skip-moving="true" type="text/javascript">
/** Google Tagmanager */
;(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start':
new Date().getTime(), event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-NLCGQ25');
window.dataLayer = window.dataLayer || [];
function gtag() {
window.dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'GTM-NLCGQ25');
</script>
<!-- End Google Tag Manager -->
<!-- Retail Rocket -->
<script type="text/javascript">
var rrPartnerId = "6048a0d097a52514f050731f";
var rrApi = {};
var rrApiOnReady = rrApiOnReady || [];
rrApi.addToBasket = rrApi.order = rrApi.categoryView = rrApi.view =
rrApi.recomMouseDown = rrApi.recomAddToCart = function() {};
(function(d) {
var ref = d.getElementsByTagName('script')[0];
var apiJs, apiJsId = 'rrApi-jssdk';
if (d.getElementById(apiJsId)) return;
apiJs = d.createElement('script');
apiJs.id = apiJsId;
apiJs.async = true;
apiJs.src = "//cdn.retailrocket.ru/content/javascript/tracking.js";
ref.parentNode.insertBefore(apiJs, ref);
}(document));
</script>
<!-- End Retail Rocket -->
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
<meta name="google-site-verification" content="UA-kf725UpqwkHenFmDQ05SW115fL9UdD9uXiFy-ibQ"/>
<meta name="robots" content="index, follow"/>
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="shortcut icon" href="/favicon.ico">
<link rel="canonical" href="https://skillbox.ru/media/code/metody-massivov-v-javascript-obyasnyaem-na-paltsakh-dlya-novichkov/">
<link rel="preload" href="https://marketplace.canva.com/EAD2962NKnQ/2/0/1600w/canva-rainbow-gradient-pink-and-purple-zoom-virtual-background-_Tcjok-d9b4.jpg" as="image" />
<link rel="preload" href="https://via.placeholder.com/1170x250/92c952" as="image" />
<link rel="preload" href="https://via.placeholder.com/768x250/40E0D0" as="image" />
<link rel="preload" href="https://via.placeholder.com/375x250/ffbcee" as="image" />
<title>Методы массивов JS: forEach, reduce, filter, slice / Skillbox Media</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keywords" content="js методы массивов, методы массивов" />
<meta name="description" content="Знакомимся с популярными методами массивов в JavaScript: forEach, map, reduce, filter, slice и другими.
Идём от простого к сложному с примерами и заданиями." />
<link href="/bitrix/cache/css/s1/media/kernel_main/kernel_main_v1.css?177096852510536" type="text/css" rel="stylesheet" />
<link href="/bitrix/js/ui/fonts/opensans/ui.font.opensans.css?16341171742599" type="text/css" rel="stylesheet" />
<link href="/bitrix/js/main/popup/dist/main.popup.bundle.css?163411696226345" type="text/css" rel="stylesheet" />
<link href="//cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.1/css/swiper.min.css" type="text/css" rel="stylesheet" />
<link href="/bitrix/cache/css/s1/media/page_a1ad23d5ae1fea4c6ac7c690c80a4763/page_a1ad23d5ae1fea4c6ac7c690c80a4763_v1.css?1771490810746236" type="text/css" rel="stylesheet" />
<link href="/bitrix/cache/css/s1/media/template_176a7c2453ad8025fa7d27f65ba6a4b1/template_176a7c2453ad8025fa7d27f65ba6a4b1_v1.css?1771490810442835" type="text/css" data-template-style="true" rel="stylesheet" />
<script type="text/javascript">if(!window.BX)window.BX={};if(!window.BX.message)window.BX.message=function(mess){if(typeof mess==='object'){for(let i in mess) {BX.message[i]=mess[i];} return true;}};</script>
<script type="text/javascript">(window.BX||top.BX).message({'JS_CORE_LOADING':'Загрузка...','JS_CORE_NO_DATA':'- Нет данных -','JS_CORE_WINDOW_CLOSE':'Закрыть','JS_CORE_WINDOW_EXPAND':'Развернуть','JS_CORE_WINDOW_NARROW':'Свернуть в окно','JS_CORE_WINDOW_SAVE':'Сохранить','JS_CORE_WINDOW_CANCEL':'Отменить','JS_CORE_WINDOW_CONTINUE':'Продолжить','JS_CORE_H':'ч','JS_CORE_M':'м','JS_CORE_S':'с','JSADM_AI_HIDE_EXTRA':'Скрыть лишние','JSADM_AI_ALL_NOTIF':'Показать все','JSADM_AUTH_REQ':'Требуется авторизация!','JS_CORE_WINDOW_AUTH':'Войти','JS_CORE_IMAGE_FULL':'Полный размер'});</script>
<script type="text/javascript" src="/bitrix/js/main/core/core.js?1634117028565340"></script>
<script>BX.setJSList(['/bitrix/js/main/core/core_ajax.js','/bitrix/js/main/core/core_promise.js','/bitrix/js/main/polyfill/promise/js/promise.js','/bitrix/js/main/loadext/loadext.js','/bitrix/js/main/loadext/extension.js','/bitrix/js/main/polyfill/promise/js/promise.js','/bitrix/js/main/polyfill/find/js/find.js','/bitrix/js/main/polyfill/includes/js/includes.js','/bitrix/js/main/polyfill/matches/js/matches.js','/bitrix/js/ui/polyfill/closest/js/closest.js','/bitrix/js/main/polyfill/fill/main.polyfill.fill.js','/bitrix/js/main/polyfill/find/js/find.js','/bitrix/js/main/polyfill/matches/js/matches.js','/bitrix/js/main/polyfill/core/dist/polyfill.bundle.js','/bitrix/js/main/core/core.js','/bitrix/js/main/polyfill/intersectionobserver/js/intersectionobserver.js','/bitrix/js/main/lazyload/dist/lazyload.bundle.js','/bitrix/js/main/polyfill/core/dist/polyfill.bundle.js','/bitrix/js/main/parambag/dist/parambag.bundle.js']);
BX.setCSSList(['/bitrix/js/main/lazyload/dist/lazyload.bundle.css','/bitrix/js/main/parambag/dist/parambag.bundle.css']);</script>
<script type="text/javascript">(window.BX||top.BX).message({'AMPM_MODE':false});(window.BX||top.BX).message({'MONTH_1':'Январь','MONTH_2':'Февраль','MONTH_3':'Март','MONTH_4':'Апрель','MONTH_5':'Май','MONTH_6':'Июнь','MONTH_7':'Июль','MONTH_8':'Август','MONTH_9':'Сентябрь','MONTH_10':'Октябрь','MONTH_11':'Ноябрь','MONTH_12':'Декабрь','MONTH_1_S':'января','MONTH_2_S':'февраля','MONTH_3_S':'марта','MONTH_4_S':'апреля','MONTH_5_S':'мая','MONTH_6_S':'июня','MONTH_7_S':'июля','MONTH_8_S':'августа','MONTH_9_S':'сентября','MONTH_10_S':'октября','MONTH_11_S':'ноября','MONTH_12_S':'декабря','MON_1':'янв','MON_2':'фев','MON_3':'мар','MON_4':'апр','MON_5':'май','MON_6':'июн','MON_7':'июл','MON_8':'авг','MON_9':'сен','MON_10':'окт','MON_11':'ноя','MON_12':'дек','DAY_OF_WEEK_0':'Воскресенье','DAY_OF_WEEK_1':'Понедельник','DAY_OF_WEEK_2':'Вторник','DAY_OF_WEEK_3':'Среда','DAY_OF_WEEK_4':'Четверг','DAY_OF_WEEK_5':'Пятница','DAY_OF_WEEK_6':'Суббота','DOW_0':'Вс','DOW_1':'Пн','DOW_2':'Вт','DOW_3':'Ср','DOW_4':'Чт','DOW_5':'Пт','DOW_6':'Сб','FD_SECOND_AGO_0':'#VALUE# секунд назад','FD_SECOND_AGO_1':'#VALUE# секунду назад','FD_SECOND_AGO_10_20':'#VALUE# секунд назад','FD_SECOND_AGO_MOD_1':'#VALUE# секунду назад','FD_SECOND_AGO_MOD_2_4':'#VALUE# секунды назад','FD_SECOND_AGO_MOD_OTHER':'#VALUE# секунд назад','FD_SECOND_DIFF_0':'#VALUE# секунд','FD_SECOND_DIFF_1':'#VALUE# секунда','FD_SECOND_DIFF_10_20':'#VALUE# секунд','FD_SECOND_DIFF_MOD_1':'#VALUE# секунда','FD_SECOND_DIFF_MOD_2_4':'#VALUE# секунды','FD_SECOND_DIFF_MOD_OTHER':'#VALUE# секунд','FD_SECOND_SHORT':'#VALUE#с','FD_MINUTE_AGO_0':'#VALUE# минут назад','FD_MINUTE_AGO_1':'#VALUE# минуту назад','FD_MINUTE_AGO_10_20':'#VALUE# минут назад','FD_MINUTE_AGO_MOD_1':'#VALUE# минуту назад','FD_MINUTE_AGO_MOD_2_4':'#VALUE# минуты назад','FD_MINUTE_AGO_MOD_OTHER':'#VALUE# минут назад','FD_MINUTE_DIFF_0':'#VALUE# минут','FD_MINUTE_DIFF_1':'#VALUE# минута','FD_MINUTE_DIFF_10_20':'#VALUE# минут','FD_MINUTE_DIFF_MOD_1':'#VALUE# минута','FD_MINUTE_DIFF_MOD_2_4':'#VALUE# минуты','FD_MINUTE_DIFF_MOD_OTHER':'#VALUE# минут','FD_MINUTE_0':'#VALUE# минут','FD_MINUTE_1':'#VALUE# минуту','FD_MINUTE_10_20':'#VALUE# минут','FD_MINUTE_MOD_1':'#VALUE# минуту','FD_MINUTE_MOD_2_4':'#VALUE# минуты','FD_MINUTE_MOD_OTHER':'#VALUE# минут','FD_MINUTE_SHORT':'#VALUE#мин','FD_HOUR_AGO_0':'#VALUE# часов назад','FD_HOUR_AGO_1':'#VALUE# час назад','FD_HOUR_AGO_10_20':'#VALUE# часов назад','FD_HOUR_AGO_MOD_1':'#VALUE# час назад','FD_HOUR_AGO_MOD_2_4':'#VALUE# часа назад','FD_HOUR_AGO_MOD_OTHER':'#VALUE# часов назад','FD_HOUR_DIFF_0':'#VALUE# часов','FD_HOUR_DIFF_1':'#VALUE# час','FD_HOUR_DIFF_10_20':'#VALUE# часов','FD_HOUR_DIFF_MOD_1':'#VALUE# час','FD_HOUR_DIFF_MOD_2_4':'#VALUE# часа','FD_HOUR_DIFF_MOD_OTHER':'#VALUE# часов','FD_HOUR_SHORT':'#VALUE#ч','FD_YESTERDAY':'вчера','FD_TODAY':'сегодня','FD_TOMORROW':'завтра','FD_DAY_AGO_0':'#VALUE# дней назад','FD_DAY_AGO_1':'#VALUE# день назад','FD_DAY_AGO_10_20':'#VALUE# дней назад','FD_DAY_AGO_MOD_1':'#VALUE# день назад','FD_DAY_AGO_MOD_2_4':'#VALUE# дня назад','FD_DAY_AGO_MOD_OTHER':'#VALUE# дней назад','FD_DAY_DIFF_0':'#VALUE# дней','FD_DAY_DIFF_1':'#VALUE# день','FD_DAY_DIFF_10_20':'#VALUE# дней','FD_DAY_DIFF_MOD_1':'#VALUE# день','FD_DAY_DIFF_MOD_2_4':'#VALUE# дня','FD_DAY_DIFF_MOD_OTHER':'#VALUE# дней','FD_DAY_AT_TIME':'#DAY# в #TIME#','FD_DAY_SHORT':'#VALUE#д','FD_MONTH_AGO_0':'#VALUE# месяцев назад','FD_MONTH_AGO_1':'#VALUE# месяц назад','FD_MONTH_AGO_10_20':'#VALUE# месяцев назад','FD_MONTH_AGO_MOD_1':'#VALUE# месяц назад','FD_MONTH_AGO_MOD_2_4':'#VALUE# месяца назад','FD_MONTH_AGO_MOD_OTHER':'#VALUE# месяцев назад','FD_MONTH_DIFF_0':'#VALUE# месяцев','FD_MONTH_DIFF_1':'#VALUE# месяц','FD_MONTH_DIFF_10_20':'#VALUE# месяцев','FD_MONTH_DIFF_MOD_1':'#VALUE# месяц','FD_MONTH_DIFF_MOD_2_4':'#VALUE# месяца','FD_MONTH_DIFF_MOD_OTHER':'#VALUE# месяцев','FD_MONTH_SHORT':'#VALUE#мес','FD_YEARS_AGO_0':'#VALUE# лет назад','FD_YEARS_AGO_1':'#VALUE# год назад','FD_YEARS_AGO_10_20':'#VALUE# лет назад','FD_YEARS_AGO_MOD_1':'#VALUE# год назад','FD_YEARS_AGO_MOD_2_4':'#VALUE# года назад','FD_YEARS_AGO_MOD_OTHER':'#VALUE# лет назад','FD_YEARS_DIFF_0':'#VALUE# лет','FD_YEARS_DIFF_1':'#VALUE# год','FD_YEARS_DIFF_10_20':'#VALUE# лет','FD_YEARS_DIFF_MOD_1':'#VALUE# год','FD_YEARS_DIFF_MOD_2_4':'#VALUE# года','FD_YEARS_DIFF_MOD_OTHER':'#VALUE# лет','FD_YEARS_SHORT_0':'#VALUE#л','FD_YEARS_SHORT_1':'#VALUE#г','FD_YEARS_SHORT_10_20':'#VALUE#л','FD_YEARS_SHORT_MOD_1':'#VALUE#г','FD_YEARS_SHORT_MOD_2_4':'#VALUE#г','FD_YEARS_SHORT_MOD_OTHER':'#VALUE#л','CAL_BUTTON':'Выбрать','CAL_TIME_SET':'Установить время','CAL_TIME':'Время','FD_LAST_SEEN_TOMORROW':'завтра в #TIME#','FD_LAST_SEEN_NOW':'только что','FD_LAST_SEEN_TODAY':'сегодня в #TIME#','FD_LAST_SEEN_YESTERDAY':'вчера в #TIME#','FD_LAST_SEEN_MORE_YEAR':'более года назад'});</script>
<script type="text/javascript">(window.BX||top.BX).message({'WEEK_START':'1'});</script>
<script type="text/javascript">(window.BX||top.BX).message({'LANGUAGE_ID':'ru','FORMAT_DATE':'DD.MM.YYYY','FORMAT_DATETIME':'DD.MM.YYYY HH:MI:SS','COOKIE_PREFIX':'BITRIX_SM','SERVER_TZ_OFFSET':'10800','UTF_MODE':'Y','SITE_ID':'s1','SITE_DIR':'/','USER_ID':'','SERVER_TIME':'1771653897','USER_TZ_OFFSET':'0','USER_TZ_AUTO':'Y','bitrix_sessid':'a7c946106a67bdc2cdeb4461290aa442'});</script>
<script type="text/javascript" src="/bitrix/js/main/date/main.date.js?159955296434530"></script>
<script type="text/javascript" src="/bitrix/js/main/popup/dist/main.popup.bundle.js?1634116962109107"></script>
<script type="text/javascript" src="/bitrix/js/main/core/core_date.js?163411653136080"></script>
<script type="text/javascript" src="/bitrix/js/ui/vue/vue2/prod/dist/vue.bundle.js?1635848017173206"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.1/js/swiper.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/fingerprintjs2/2.1.0/fingerprint2.min.js"></script>
<script type="text/javascript">BX.setCSSList(['/bitrix/js/main/core/css/core_date.css','/setka/css/setka_skillbox.css','/local/templates/.default/components/bitrix/news.detail/article/style.css','/static/css/newarticle.css','/local/templates/media/libs/jquery.formstyler.css','/local/templates/media/fonts/graphik-font/stylesheet.css','/static/css/main.css','/local/templates/media/template_styles.css']);</script>
<script src="https://cdn.skillbox.pro/frontend-libs/promo-banner/5.10.1/banner-plugin.min.js"></script>
<script type="text/javascript" async src="https://relap.io/api/v6/head.js?token=sI73Ph6a5BnkqK2o"></script>
<meta property="og:title" content="Методы массивов в JavaScript: объясняем на пальцах для новичков" />
<meta property="og:description" content="Перебираем, сортируем, фильтруем и делаем с массивами всякое." />
<meta property="og:url" content="https://skillbox.ru/media/code/metody-massivov-v-javascript-obyasnyaem-na-paltsakh-dlya-novichkov/" />
<meta property="og:type" content="article" />
<meta property="og:site_name" content="skillbox.ru" />
<meta property="og:locale" content="ru_RU" />
<meta property="og:image" content="https://248006.selcdn.ru/main/iblock/005/005e4c534170f9cde790f7c147630954/75338f5931457e740602139e47b5dbaa.jpg" />
<meta name="relap-image" content="https://248006.selcdn.ru/main/iblock/005/005e4c534170f9cde790f7c147630954/75338f5931457e740602139e47b5dbaa.jpg" />
<meta property="og:image:width" content="600" />
<meta property="og:image:height" content="315" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:image" content="https://248006.selcdn.ru/main/iblock/005/005e4c534170f9cde790f7c147630954/75338f5931457e740602139e47b5dbaa.jpg" />
<meta property="vk:image" content="https://248006.selcdn.ru/main/iblock/054/054b6b851116ca7af7d1ec172b175482/773cb08e16967f4f3b8fc71b5f47c8f6.jpg" />
<meta property="article:author" content="Редакция «Код» Skillbox Media" />
<meta property="article:tag" content="статьи" />
<meta property="article:section" content="Код" />
<script type="text/javascript" src="/static/js/vendor.js?1771489421543641"></script>
<script type="text/javascript" src="/local/assets/js/common.js?177148933727419"></script>
<script type="text/javascript" src="/static/js/main.js?1771489421125222"></script>
<script type="text/javascript" src="/local/templates/media/js/main.js?17714893372418"></script>
<script type="text/javascript" src="/local/components/prmedia/popup.subscribe/templates/.default/script.js?17714893376820"></script>
<script type="text/javascript" src="/local/templates/.default/components/bitrix/news.detail/article/infinity.js?177148933713735"></script>
<script type="text/javascript" src="/local/templates/.default/components/bitrix/news/articles/script.js?1771489337246"></script>
<script type="text/javascript" src="/setka/js/setka_skillbox.js?1771489337106775"></script>
<script type="text/javascript" src="/local/templates/.default/components/bitrix/news.detail/article/script.js?17714893377503"></script>
<script type="text/javascript">var _ba = _ba || []; _ba.push(["aid", "84a6082a990bbac8858fb733b97bed30"]); _ba.push(["host", "skillbox.ru"]); (function() {var ba = document.createElement("script"); ba.type = "text/javascript"; ba.async = true;ba.src = (document.location.protocol == "https:" ? "https://" : "http://") + "bitrix.info/ba.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ba, s);})();</script>
</head>
<body>
<div class="js-sticky-delimiter"></div>
<div class="bx-panel"></div>
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NLCGQ25" height="0" width="0"
style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
<svg class="app-svg-visually-hidden" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="def-arrow-down-a" d="M223 20813l4 5 4-5z"/>
<path id="def-arrow-a" d="M1044.6 803.2a.81.81 0 01-.5.18.8.8 0 01-.8-.8v-3.24c-2.97.1-5.17.88-6.52 2.3a4.86 4.86 0 00-1.39 3.29.8.8 0 01-.75.83h-.04a.79.79 0 01-.79-.74c-.22-3.78.69-6.76 2.69-8.84a10.76 10.76 0 016.81-3.07v-3.3a.8.8 0 011.29-.63l7.91 6.39a.8.8 0 010 1.25zm.3-11.73v2.42a.5.5 0 01-.03.1.8.8 0 01-.05.21.78.78 0 01-.47.42.67.67 0 01-.25.05h-.01c-.06 0-3.93-.04-6.46 2.62-.8.85-1.4 1.87-1.74 2.99 1.79-1.7 4.55-2.57 8.21-2.57.44 0 .8.36.8.8v2.4l5.85-4.72z"/>
<path id="def-be-a" d="M55.6 29.58h6.12v-1.59H55.6zm.64 5.74s.26-2.23 2.58-2.23c2.32 0 2.26 2.23 2.26 2.23zm-3.23 1.27S52.56 42 58.72 42c0 0 5.26.37 5.26-3.81H61.4s-.09 1.59-2.58 1.59c0 0-2.58.17-2.58-2.55l7.74-.01c-.08-.32.9-6.42-5.16-6.36-5.77.05-5.81 5.73-5.81 5.73zm-10.34 2.8v-4.24H47s1.7.16 1.7 2.24c0 1.76-1.06 1.99-1.7 2zM47 29.61s1.16.06 1.16 1.62-.76 1.64-1.49 1.64h-4v-3.26zm4.33 1.3c0-2.68-1.81-3.91-4.26-3.91H39v15.01h8.07s4.92.15 4.92-4.43c0 0 .22-3.73-2.9-3.73 0 0 2.24-.25 2.24-2.94z"/>
<path id="def-briefcase-a" d="M855 13538c0-1.7 1.3-3 3-3s3 1.3 3 3v7c0 1.7-1.3 3-3 3s-3-1.3-3-3v-7z"/>
<path id="def-comments-a" d="M752 8958l-4 4v-12a1 1 0 011-1h11a1 1 0 011 1v7a1 1 0 01-1 1zm12-6v13l-3.2-4H751l2-2h9v-8h1c1 0 1 .45 1 1z"/>
<path id="def-eaye-a" d="M630 8956.22c0 1.04-3.58 5.21-8 5.21s-8-4.26-8-5.21c0-1.05 3.58-5.22 8-5.22s8 4.17 8 5.22zm-5 0h-3v-3.13a3.13 3.13 0 100 6.26 3.07 3.07 0 003-3.13z"/>
<path id="def-file-a" d="M493 9457a2 2 0 01-1.98-2v-16a2 2 0 011.98-2h19.82c1.13 0 2.07.87 2.15 2v16a2.15 2.15 0 01-2.15 2zm0-18v8.83l5.3-4.59a.98.98 0 011.35.05l5.34 5.39 3.27-2.48a.98.98 0 011.36.16l3.35 4.07V9439zm19.97 14.55l-4.27-5.18-3.21 2.43c-.4.3-.95.26-1.3-.09l-5.3-5.35-5.9 5.1v4.54h19.98zm-6.1-10.55a1.98 1.98 0 113.97.04 1.98 1.98 0 01-3.97-.04z"/>
<path id="def-gplus-a" d="M466 10169a4 4 0 013.87-3.99 4.14 4.14 0 012.93.99c-.33.36-.67.71-1.03 1.04-.72-.42-1.58-.75-2.41-.46a2.52 2.52 0 00-1.67 3.23c.41 1.35 2.09 2.1 3.4 1.52a2.22 2.22 0 001.33-1.51c-.78-.01-1.56 0-2.34-.03v-1.36h3.9a4.45 4.45 0 01-.83 3.2c-1 1.28-2.88 1.66-4.4 1.16a4 4 0 01-2.75-3.79z"/><path id="def-gplus-b" d="M476.34 10166h1.32l.01 1.33H479v1.33l-1.33.01v1.33h-1.33l-.01-1.33H475v-1.33l1.33-.01.01-1.33z"/>
<path id="def-inst-a" d="M1480.93 332c-3.5 0-3.95.02-5.32.07-1.37.07-2.3.28-3.14.6-.84.34-1.57.77-2.28 1.5a6.36 6.36 0 00-1.5 2.28 9.84 9.84 0 00-.6 3.14c-.07 1.37-.07 1.82-.07 5.32s.02 3.96.07 5.32c.07 1.37.28 2.31.6 3.14.34.85.77 1.58 1.5 2.29a6.51 6.51 0 002.28 1.5c.82.3 1.77.53 3.14.6 1.37.07 1.82.07 5.32.07s3.96-.02 5.32-.07a9.48 9.48 0 003.14-.6 6.14 6.14 0 002.29-1.5 6.36 6.36 0 001.5-2.29c.3-.81.53-1.77.6-3.14.07-1.36.07-1.82.07-5.32s-.02-3.95-.07-5.32a9.48 9.48 0 00-.6-3.14 6.14 6.14 0 00-1.5-2.28 6.36 6.36 0 00-2.29-1.5 9.84 9.84 0 00-3.14-.6c-1.38-.05-1.82-.07-5.32-.07zm0 2.32c3.45 0 3.85.02 5.22.07 1.27.05 1.94.26 2.4.45.6.25 1.03.52 1.48.97.45.45.73.89.97 1.5.18.44.39 1.14.45 2.39.07 1.37.07 1.76.07 5.21s-.01 3.85-.07 5.22a6.55 6.55 0 01-.45 2.4c-.24.6-.52 1.03-.97 1.48-.45.45-.88.73-1.49.97-.45.18-1.14.39-2.39.45-1.37.07-1.77.07-5.22.07-3.45 0-3.84-.01-5.21-.07a6.55 6.55 0 01-2.4-.45 4.11 4.11 0 01-1.49-.97 4.11 4.11 0 01-.97-1.49 7.52 7.52 0 01-.45-2.39c-.07-1.37-.07-1.77-.07-5.22 0-3.45.02-3.84.07-5.21.05-1.27.26-1.95.45-2.4.25-.6.52-1.04.97-1.49.45-.45.89-.72 1.5-.97a7.52 7.52 0 012.39-.45c1.35-.05 1.76-.07 5.21-.07z"/><path id="def-inst-b" d="M1480.93 349.2a4.3 4.3 0 110-8.59 4.3 4.3 0 010 8.6zm0-10.93a6.62 6.62 0 100 13.24 6.62 6.62 0 000-13.24z"/><path id="def-inst-c" d="M1486.27 338.01a1.54 1.54 0 113.09 0 1.54 1.54 0 01-3.09 0z"/>
<path id="def-like-down-a" d="M1004.33 543.66c-1.1 0-2.45-.86-2.61-3.31-.05-1.41.11-2.82.48-4.19h-2.96c-2.15 0-3.42-1.35-3.42-2.67 0-.39.05-.77.17-1.13a2.4 2.4 0 01-.99-2.03 2.35 2.35 0 011.02-2.05c-.12-.34-.18-.7-.17-1.06.86-.6 1.2-1.7.86-2.7 0-2.52 3.45-2.52 4.57-2.52h2.85c1.3.06 2.56.4 3.71 1 .67.36 1.41.6 2.18.67h3.23c.25 0 .5.11.65.31.12.14 1.1 1.47 1.1 4.69.03 1.8-.28 3.6-.9 5.31a.83.83 0 01-.67.5c-.03 0-3.27.4-4.85 1.98a10.32 10.32 0 00-2.8 5.94 1.4 1.4 0 01-1.45 1.26zm-6.84-10.17c0 .34.52 1 1.75 1h4.06a.83.83 0 01.8 1.1c-.5 1.5-.73 3.07-.72 4.65.08 1.1.44 1.6.79 1.72a11.94 11.94 0 013.23-6.67c1.57-1.58 4.2-2.18 5.32-2.38.41-1.37.62-2.8.61-4.24a8.18 8.18 0 00-.56-3.34h-2.75c-1-.07-1.97-.35-2.85-.81a7.53 7.53 0 00-3.04-.85h-2.85c-1.32 0-2.9.15-2.9.85-.02.11.02.22.09.3a.73.73 0 01.75.77.92.92 0 01-.85.87.85.85 0 00-.85.77c-.05.22.01.44.17.6.42.07.71.45.67.88a.87.87 0 01-.86.77.77.77 0 00-.83.85.8.8 0 00.87.85c.46.01.82.4.81.85 0 .43-.33.78-.76.8-.09.21-.12.44-.1.66z"/>
<path id="def-like-up-a" d="M944.67 520c1.1 0 2.45.87 2.61 3.32.05 1.4-.11 2.82-.48 4.18h2.96c2.15 0 3.42 1.36 3.42 2.67 0 .39-.05.77-.17 1.14a2.4 2.4 0 01.99 2.02c.04.81-.35 1.59-1.02 2.05.12.34.18.7.17 1.07-.86.6-1.2 1.7-.86 2.69 0 2.52-3.45 2.52-4.57 2.52h-2.85a8.94 8.94 0 01-3.71-.99 5.67 5.67 0 00-2.18-.67h-3.23a.83.83 0 01-.65-.32c-.12-.14-1.1-1.47-1.1-4.68-.03-1.81.28-3.62.9-5.32a.83.83 0 01.67-.5c.03 0 3.27-.4 4.85-1.98a10.32 10.32 0 002.8-5.93 1.4 1.4 0 011.45-1.27zm6.84 10.17c0-.34-.52-1-1.75-1h-4.06a.83.83 0 01-.8-1.1c.5-1.5.73-3.07.72-4.65-.08-1.1-.44-1.6-.79-1.72a11.94 11.94 0 01-3.23 6.67c-1.57 1.58-4.2 2.19-5.32 2.38a14.38 14.38 0 00-.61 4.25 8.18 8.18 0 00.56 3.33h2.75c1 .07 1.97.35 2.85.82.94.49 1.98.78 3.04.85h2.85c1.32 0 2.9-.15 2.9-.86a.35.35 0 00-.09-.3.73.73 0 01-.75-.77.92.92 0 01.85-.87c.44 0 .81-.33.85-.77a.65.65 0 00-.17-.6.81.81 0 01-.67-.87.87.87 0 01.86-.78.77.77 0 00.83-.85.8.8 0 00-.87-.85.83.83 0 01-.81-.85c0-.43.33-.78.76-.8.09-.21.12-.43.1-.66z"/>
<path id="def-like-a" d="M701.32 8960.32a.95.95 0 01-.95.95h-5.72c-.96 0-1.92-.95-2.87-.95h-.95v-6.68c.04-.6.4-1.12.95-1.36a4.78 4.78 0 002.87-4.37v-.96a.95.95 0 01.95-.95h.95c.53 0 .95.43.95.95v5.73h3.82a.9.9 0 01.96.96zm-14.31.95v-9.54h1.9a.96.96 0 01.97.95v7.64a.96.96 0 01-.96.95zm.99-8.3a.48.48 0 10.88.38.48.48 0 00-.88-.38z"/>
<path id="def-link-a" d="M626.02 1163.93l-.02 15.99 13.02.01v-4a.86.86 0 01.24-.68.9.9 0 01.66-.28 1 1 0 011 1v4.95a1 1 0 01-.29.7 1 1 0 01-.71.29H625a1 1 0 01-.71-.29 1 1 0 01-.29-.7V1163a1 1 0 011-1h3.95a1 1 0 011 1 .89.89 0 01-.93.93z"/><path id="def-link-b" d="M641.95 1171a1 1 0 01-1-1v-5.59l-9.25 9.3a.99.99 0 01-1.41-.01.99.99 0 01.01-1.41l9.24-9.29h-5.56a1 1 0 01-1-1 1 1 0 011-1h7.97a1 1 0 011 1v8a1 1 0 01-1 1z"/>
<path id="def-mail-a" d="M1058 261c0-.6-.4-1-1-1h-14c-.6 0-1 .4-1 1l8 6.5z"/><path id="def-mail-b" d="M1042 262.5v8.5c0 .6.4 1 1 1h14c.6 0 1-.4 1-1v-8.5l-8 6.5z"/>
<path id="def-outside-a" d="M1204.24 9231.16h-10.05c-.92 0-1.67-.75-1.67-1.68v-4.2c0-.46.38-.84.84-.84a.81.81 0 01.8.84v4.2h10.08v-16.8h-10.08v4.2a.81.81 0 01-.8.84.84.84 0 01-.84-.84v-4.2c0-.93.75-1.68 1.67-1.68h10.05c.92 0 1.67.75 1.67 1.68v16.8c0 .93-.75 1.68-1.67 1.68zm-15.56-10.92h11.37a.84.84 0 110 1.68h-11.36l1.91 1.92a.84.84 0 11-1.18 1.2l-3.35-3.36a.86.86 0 01-.24-.6v-.02a.83.83 0 01.24-.58l3.35-3.36a.83.83 0 011.18 0c.33.33.33.87 0 1.2z"/>
<path id="def-pencil-a" d="M1190.84 9818.68a.64.64 0 01-.19.13l-.07.06-4.42 1.82c-.1.05-.21.07-.32.07a.83.83 0 01-.77-1.15l1.84-4.4v-.02a.38.38 0 01.09-.13l.08-.13v-.01l10.82-10.82-.44-.44-3.56 3.57a.83.83 0 01-1.18-1.18l4.16-4.15a.81.81 0 011.17 0l1.03 1.03 1.86-1.86a.84.84 0 011.17 0l2.58 2.58c.33.32.33.85 0 1.18zm-2.88-1.7l-.58 1.41 1.41-.58zm.88-1.47l1.41 1.4 10.24-10.23-1.4-1.4zm12.69-12.68l-1.27 1.27 1.4 1.4 1.28-1.27z"/>
<path id="def-phone-a" d="M732.62 41c-2.25 0-6.37-2.73-10.24-6.78a33.08 33.08 0 01-5.22-6.96c-1.33-2.53-1.52-4.32-.56-5.31l2.91-2.72c.17-.16.4-.24.63-.23.24.02.46.13.61.32l3.79 4.58c.23.28.28.68.12 1.01l-1.47 3.08 5.24 5.48 2.93-1.54a.83.83 0 01.96.12l4.38 3.96c.17.16.28.38.3.63a.97.97 0 01-.22.67l-2.53 3.02c-.33.34-.81.67-1.63.67zm-14.76-17.78c-.15.21-.25 1.09.83 3.15 1.06 2 2.8 4.32 4.93 6.55 3.87 4.06 7.53 6.25 9 6.25.2 0 .3-.04.33-.08l1.94-2.3-3.27-2.95-2.98 1.56a.84.84 0 01-1.01-.17l-6.12-6.42a.92.92 0 01-.16-1.05l1.48-3.12-2.82-3.42z"/>
<path id="def-plus-a" d="M1223.33 4172.67h-6.66v6.66a.67.67 0 01-1.34 0v-6.66h-6.66a.67.67 0 010-1.34h6.66v-6.66a.67.67 0 011.34 0v6.66h6.66a.67.67 0 010 1.34z"/>
<path id="def-search-a" d="M1092.53 24.87a6.7 6.7 0 10-.05 13.4 6.7 6.7 0 00.05-13.4zm12.1 18.85a.95.95 0 01-1.35 0l-5.4-5.43a8.62 8.62 0 111.35-1.35l5.4 5.43c.37.37.37.98 0 1.35z"/>
<path id="def-shape-a" d="M879 13323h-4a1 1 0 01-1-1v-4a1 1 0 011-1h.85c-1.29-8.14-8.38-15.22-16.85-16.81v.81a1 1 0 01-1 1h-4a1 1 0 01-1-1v-.81c-8.47 1.6-15.56 8.67-16.85 16.81h.85a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4a1 1 0 011-1h1.13c1.03-7.24 6.24-13.76 13.07-17h-6.48a1.98 1.98 0 01-1.72 1.01c-.97 0-1.8-.69-1.98-1.65a2 2 0 011.28-2.23 2 2 0 012.42.87H853v-1a1 1 0 011-1h4a1 1 0 011 1v1h12.27a2.01 2.01 0 110 2h-6.47c6.83 3.24 12.04 9.76 13.07 17H879a1 1 0 011 1v4a1 1 0 01-1 1zm-43-4h-2v2h2zm21-21h-2v2h2zm21 21h-2v2h2zm-22.93-12.51a.52.52 0 01.1-.18l.01-.03.03-.03a1 1 0 01.2-.21l.06-.04c.06-.04.12-.08.19-.1l.04-.02.09-.01.05-.01.16-.03.15.03h.04l.11.01.04.02.19.1.02.02.02.01a.92.92 0 01.24.25l.02.03c.04.05.08.12.1.18l.03.05c.02.07 2.33 7.26 8.51 10.59.26.14.45.39.51.68a.97.97 0 01-.2.82 23.7 23.7 0 00-3.99 8.81 8.02 8.02 0 012.21 5.57 1 1 0 01-1 1h-14a1 1 0 01-1-1 8.02 8.02 0 012.21-5.57 23.66 23.66 0 00-3.99-8.8 1 1 0 01.31-1.51c6.21-3.34 8.49-10.52 8.51-10.59l.03-.04zm.93 20.49a6 6 0 00-5.92 5.02h11.84a6 6 0 00-5.92-5.02zm-4.06-.9a8.17 8.17 0 018.12 0 25.8 25.8 0 013.47-7.78 20.33 20.33 0 01-6.53-6.96v6.93a2 2 0 01-.97 3.73 2.03 2.03 0 01-2.03-2 2 2 0 011-1.7v-6.96a20.33 20.33 0 01-6.53 6.96 25.8 25.8 0 013.47 7.78z"/>
<path id="def-strawberry-a" d="M873.26 13427.96a7.49 7.49 0 01-4.13-1.21 20.45 20.45 0 012.02 8.92c0 10.41-17.26 18.25-28.46 18.25-3.71 0-6.53-.86-8.17-2.48l-.1-.1c-3.9-4.01-2.65-13.97.62-21.78 3.77-9.01 9.53-14.39 15.41-14.39 3.1 0 6.17.68 8.97 1.99a8.12 8.12 0 01-.65-1.24c-1.09-2.7-.53-5.87 1.68-9.44a1 1 0 011.11-.45c.21.06 5.12 1.38 6.8 5.49.8 2.19.7 4.61-.29 6.72 1.25-.51 2.58-.79 3.92-.83 5.12 0 7.74 4.75 8.4 7.26a.97.97 0 01-.45 1.1 12.95 12.95 0 01-6.68 2.19zm-36.36 2.36c-3.42 8.19-3.85 16.84-.97 19.69l.08.09c1.26 1.18 3.62 1.82 6.68 1.82a38.27 38.27 0 0017.26-4.82c3.43-1.92 9.18-5.96 9.18-11.43a18.4 18.4 0 00-18.68-18.5c-5.93 0-10.89 6.79-13.55 13.15zm29.59-18.05c-.97-2.38-3.49-3.6-4.73-4.07-1.52 2.71-1.89 5.05-1.12 6.96.96 2.37 3.48 3.6 4.73 4.08 1.52-2.71 1.89-5.05 1.12-6.97zm5.5 7.13c-1.75.08-3.45.6-4.95 1.51.59 1.54 2.36 5.06 6.22 5.06 1.75-.08 3.45-.6 4.94-1.5-.59-1.55-2.36-5.07-6.21-5.07zm-13.43 13.54h3v3h-3zm-4-5h3v3h-3zm2 13h-3v-3h3zm-7-8h3v3h-3zm0-9h3v3h-3zm2 22h-3v-3h3zm-7-8h3v3h-3zm0-9h3v3h-3zm-5 14h3v3h-3zm0-9h3v3h-3z"/>
<path id="def-telegram-a" d="M823.8 272.93l-4.09 20.05c-.3 1.42-1.16 1.76-2.36 1.1l-6.52-4.77-3.13 3c-.55.47-.75.66-1.27.65-.5 0-.74-.3-1.03-1.1l-2.4-7.29-6.26-1.94c-1.01-.32-1.06-1.66.31-2.05l25.01-9.39c1.14-.52 2.18 0 1.74 1.74zm-17.39 18.55l.6-5.26 11.83-10.54c.31-.36.09-.88-.61-.42l-14.24 8.87z"/>
<path id="def-tm-a" d="M1406.46 346.34l13.28-8.34c.65-.44.86.05.57.39l-11.02 9.91-.57 4.96zm16.84-12.16l-23.32 8.83c-1.27.37-1.24 1.62-.3 1.93l5.84 1.82 2.24 6.86c.28.75.5 1.04.96 1.04.49 0 .67-.18 1.19-.62.58-.55 1.5-1.43 2.92-2.83l6.08 4.49c1.12.62 1.92.3 2.21-1.04l3.8-18.85c.41-1.63-.55-2.12-1.62-1.63z"/>
<path id="def-trash-a" d="M1175 9805h-1.09l-1.8 13.12a2.15 2.15 0 01-2.11 1.88h-8a2.14 2.14 0 01-2.1-1.88l-1.78-13.12H1157a1 1 0 010-2h5v-1a3 3 0 013-3h2a3 3 0 013 3v1h5a1 1 0 010 2zm-7-3a1 1 0 00-1-1h-2a1 1 0 00-1 1v1h4zm-7.87 3l1.75 12.9c.02.05.07.09.12.1h8c.06-.01.1-.05.12-.11l1.78-12.89zm6.87 3h2v6h-2zm-4 0h2v6h-2z"/>
<path id="def-triangle-a" d="M1238 6883l7.22 7.22 7.22-7.22z"/>
<path id="def-user-circle-a" d="M1265.24 30.18a10 10 0 01-2.18 10.9 6.94 6.94 0 00-4.7-4.69 5 5 0 10-4.66.01c-2.24.72-4 2.47-4.72 4.71a10 10 0 1116.26-10.93zm-6.22 1.82a3 3 0 11-6-.01 3 3 0 016 .01zm-8.3 10.48c.4-2.6 2.65-4.5 5.28-4.48 2.73 0 5.1 1.96 5.27 4.37l.03.09a9.9 9.9 0 01-10.57.02zM1256 46a12.01 12.01 0 000-24 12 12 0 100 24z"/>
<path id="def-vb-a" d="M955.45 276.38c.68 3.25.79 6.51-.02 9.76-.14.57-.36 1.11-.58 1.65-.84 2.05-2.5 3.13-4.57 3.73-1.63.48-3.31.69-5 .82-.89.07-2.29.03-3.18.02-.76-.01-.55-.04-1.04.45-.96.97-1.84 1.82-2.76 2.84a28 28 0 01-1.35 1.35v-4.93c0-.25-.07-.4-.3-.5-.26-.1-.5-.24-.75-.34a6.95 6.95 0 01-4.35-4.98 19.93 19.93 0 01-.51-6.16c.07-1.4.26-2.79.64-4.15a6.8 6.8 0 013.48-4.25 13.83 13.83 0 014.79-1.47 25.9 25.9 0 019.8.59 8.9 8.9 0 013.5 1.69 6.59 6.59 0 012.2 3.88zm-12.05-1.52c.54.04 1.07.15 1.6.28 1.98.5 3.52 1.53 4.32 3.43.42.99.63 2.02.7 3.08.02.27.15.42.43.42.27-.01.38-.19.39-.43.02-.21.01-.42.01-.64a7.41 7.41 0 00-1.39-4.12c-1.49-1.96-3.43-2.7-6-2.82-.31-.02-.49.1-.51.42-.01.31.21.36.45.38zm4.39 4.61c.11.4.21.81.26 1.22.03.27-.03.64.42.65.32.01.4-.13.43-.67a4.58 4.58 0 00-.68-2.46c-.96-1.52-2.37-2.16-4.16-2.32-.28-.03-.48.08-.52.37-.05.3.14.44.41.48.55.08 1.08.22 1.6.4a3.32 3.32 0 012.24 2.33zm-2.22-1.46a2.29 2.29 0 00-.89-.22c-.38.03-.58.19-.58.45.01.33.3.33.52.39l.27.06c.72.19 1.13.65 1.27 1.36.03.13.04.27.08.4.06.18.18.31.4.31.21-.01.34-.13.39-.32l.04-.35a2.4 2.4 0 00-1.5-2.08zm4.89 7.94c-.78-.65-1.6-1.25-2.47-1.78-1.02-.62-1.77-.45-2.47.49l-.11.14c-.32.39-.72.54-1.22.4a5.89 5.89 0 01-1.51-.74 6.76 6.76 0 01-2.77-3.19c-.35-.82-.19-1.35.54-1.88l.28-.2c.55-.45.68-.89.37-1.52a9.94 9.94 0 00-2.3-3.05 1.3 1.3 0 00-.97-.36 2.9 2.9 0 00-2.62 2.74c-.01.37.08.78.24 1.17 2.23 5.38 6.16 9.1 11.6 11.36.4.17.82.27 1.25.15a3.75 3.75 0 002.55-2.16c.28-.61.14-1.13-.39-1.57z"/>
<path id="def-ynadex-a" d="M471.93 10326.44h-.59c-.92 0-1.8-.64-1.8-2.24 0-1.67.83-2.35 1.68-2.35h.7v4.59zm.92-5.44h-1.6c-1.55 0-2.87 1.13-2.87 3.33 0 1.32.64 2.3 1.78 2.78l-2.13 3.68c-.07.12 0 .21.1.21h1c.08 0 .14-.03.17-.1l1.93-3.6h.7v3.6c0 .05.04.1.1.1h.86c.08 0 .11-.04.11-.1v-9.77c0-.09-.06-.13-.15-.13z"/>
<path id="def-ytube-a" d="M1343.37 349.72v-9.44l6.27 4.72zm-7.81-14.03a3.54 3.54 0 00-3.56 3.51v11.6a3.54 3.54 0 003.56 3.51h19.88a3.54 3.54 0 003.56-3.5V339.2a3.54 3.54 0 00-3.56-3.51h-19.88z"/>
</defs>
<symbol id="icon-arrow-chevron" viewBox="0 0 9 15"><path d="M7.07.862L0 7.93 7.072 15l1.06-1.06-6.011-6.01L8.13 1.922 7.07.862z"/></symbol>
<symbol id="icon-arrow-down" viewBox="0 0 8 5"><use xlink:href="#def-arrow-down-a" transform="translate(-223 -20813)"/></symbol>
<symbol id="icon-arrow-left" viewBox="0 0 18 12"><path d="M.1 6.3c-.1-.3 0-.6.1-.8l4.3-4.3c.3-.3.7-.3 1 0 .3.3.3.7 0 1l-3 3.1h14.1c.4 0 .7.3.7.7 0 .4-.3.7-.7.7H2.5l3.1 3.1c.3.3.3.8 0 1-.2.2-.3.2-.4.3-.2.1-.5 0-.7-.2L.2 6.6c-.1-.1-.1-.2-.1-.3z"/></symbol>
<symbol id="icon-arrow-menu" viewBox="0 0 10 5"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0l5 5 5-5H0z"/></symbol>
<symbol id="icon-arrow-right" viewBox="0 0 15 12"><path d="M14.19 5.77c.11.26.05.57-.15.78l-4.32 4.33a.72.72 0 01-1.02 0 .72.72 0 010-1.02l3.09-3.1H.69A.72.72 0 010 6.04c0-.38.31-.7.69-.72h11.1L8.7 2.23a.73.73 0 01.33-1.21c.24-.06.51.01.69.19l4.32 4.32a.6.6 0 01.15.24z"/></symbol>
<symbol id="icon-arrow" viewBox="0 0 20 17"><use xlink:href="#def-arrow-a" transform="translate(-1033 -789)"/></symbol>
<symbol id="icon-be" viewBox="0 0 25 16"><use xlink:href="#def-be-a" transform="translate(-39 -27)"/></symbol>
<symbol id="icon-be2-mob" viewBox="0 0 34 34"><path d="M15.426 16.508s1.507-.112 1.507-1.879S15.7 12 14.138 12H9v9.875h5.138s3.137.099 3.137-2.915c0 0 .137-2.452-1.85-2.452zm-4.162-2.753h2.874s.699 0 .699 1.027c0 1.028-.411 1.177-.877 1.177h-2.696v-2.204zm2.742 6.365h-2.742v-2.64h2.874s1.041-.013 1.041 1.357c0 1.142-.761 1.271-1.173 1.283zM23.408 12.582h-4.074v1.216h4.074v-1.216zM21.458 14.513c-3.797 0-3.794 3.793-3.794 3.793s-.26 3.775 3.794 3.775c0 0 3.38.193 3.38-2.626H23.1s.058 1.062-1.584 1.062c0 0-1.737.116-1.737-1.718h5.116s.56-4.286-3.437-4.286zm1.545 2.968h-3.244s.213-1.522 1.738-1.522 1.506 1.522 1.506 1.522z"/></symbol>
<symbol id="icon-be2" viewBox="0 0 56 56"><path d="M27.475 27.946s1.987-.148 1.987-2.479c0-2.33-1.625-3.467-3.685-3.467H19v13.024h6.777s4.137.13 4.137-3.844c0 0 .18-3.234-2.439-3.234zm-5.489-3.631h3.791s.921 0 .921 1.355-.542 1.551-1.156 1.551h-3.556v-2.906zm3.616 8.394h-3.616v-3.48h3.79s1.374-.018 1.374 1.788c0 1.506-1.004 1.677-1.548 1.692zM38.004 22.767H32.63v1.604h5.373v-1.604zM35.432 25.314c-5.009 0-5.004 5.003-5.004 5.003s-.344 4.98 5.004 4.98c0 0 4.456.254 4.456-3.464h-2.292s.077 1.4-2.088 1.4c0 0-2.291.154-2.291-2.266h6.748s.738-5.653-4.533-5.653zm2.037 3.915H33.19s.28-2.008 2.291-2.008c2.013 0 1.987 2.008 1.987 2.008z"/></symbol>
<symbol id="icon-briefcase" viewBox="834 13519 48 44"><path d="M836.5 13563c-1.4 0-2.5-1.2-2.5-2.6v-19.4c0 .6.4 1 1 1h1v18.4c0 .3.2.6.5.6h42.9c.3 0 .5-.3.5-.6v-18.4h1c.6 0 1-.4 1-1s-.4-1-1-1h-1v-10.4c0-.3-.2-.5-.5-.6h-42.9c-.3 0-.5.3-.5.6v10.4h-1c-.6 0-1 .4-1 1v-11.4c0-1.4 1.1-2.5 2.5-2.6H849v1c0 .6.4 1 1 1s1-.4 1-1v-1h14v1c0 .6.4 1 1 1 .3 0 .5-.1.7-.3.2-.2.3-.4.3-.7v-1h12.5c1.4 0 2.5 1.2 2.5 2.6v30.9c0 1.4-1.1 2.6-2.5 2.6h-43zm18.4-21H836v-2h18.9c.6 0 1 .4 1 1s-.4 1-1 1zm25.1-2v2h-18.9c-.6 0-1-.4-1-1s.4-1 1-1H880zm-13-16.8c0-2.3-1.9-4.2-4.2-4.2h-9.6c-2.3 0-4.2 1.9-4.2 4.2v3.8h2v-3.8c0-1.2 1-2.2 2.2-2.2h9.6c1.2 0 2.2 1 2.2 2.2v3.8h2v-3.8z"/><clipPath id="def-briefcase-b"><use xlink:href="#def-briefcase-a" overflow="visible"/></clipPath><g clip-path="url(#def-briefcase-b)"><path stroke-width="4" stroke-miterlimit="50" d="M855 13538c0-1.7 1.3-3 3-3s3 1.3 3 3v7c0 1.7-1.3 3-3 3s-3-1.3-3-3v-7z"/></g></symbol>
<symbol id="icon-burger" viewBox="0 0 20 14"><g fill-rule="evenodd"><path d="M0 0h20v2H0zM0 6h20v2H0zM0 12h20v2H0z"/></g></symbol>
<symbol id="icon-cancel-circle" viewBox="0 0 24 24"><path d="M12 24a12 12 0 110-24 12 12 0 010 24zm0-22a10 10 0 100 20 10 10 0 000-20zm4.71 13.29L13.41 12l3.3-3.29a1 1 0 00-.02-1.4 1 1 0 00-1.4-.02L12 10.59l-3.29-3.3a1 1 0 00-1.4.02 1 1 0 00-.02 1.4l3.3 3.29-3.3 3.29a1 1 0 00.02 1.4 1 1 0 001.4.02l3.29-3.3 3.29 3.3a1 1 0 001.42 0 1 1 0 000-1.42z"/></symbol>
<symbol id="icon-clip" viewBox="0 0 25 22"><path d="M12.1 21.37a1.02 1.02 0 01-.71-1.73L21.74 9.11a4.19 4.19 0 000-5.87 4.04 4.04 0 00-5.78 0l-12 12.21c-.59.49-.94 1.2-.97 1.97.05.49.28.95.63 1.29.31.35.77.53 1.23.48.74-.17 1.4-.57 1.89-1.15l9.42-9.58a.98.98 0 011.41 0c.39.4.39 1.04 0 1.44l-9.42 9.58A5.3 5.3 0 015.1 21.2a3.37 3.37 0 01-2.89-1.05A4.16 4.16 0 011 17.54a4.62 4.62 0 011.55-3.53l12-12.2a6.03 6.03 0 018.6 0 6.24 6.24 0 010 8.74L12.8 21.07a.98.98 0 01-.7.3z"/></symbol>
<symbol id="icon-clock" viewBox="0 0 24 24"><path d="M0 12a12 12 0 1124 0 12 12 0 01-24 0zm2 0a10 10 0 1020 0 10 10 0 00-20 0zm14 5a1 1 0 00.71-1.71L13 11.59V5a1 1 0 00-1-1 1 1 0 00-1 1v7a1 1 0 00.08.38c.05.12.12.24.21.33l4 4c.19.18.45.29.71.29z"/></symbol>
<symbol id="icon-close-menu" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.636 2.303L13.97.636 8.136 6.469 2.303.636.636 2.303 6.47 8.136.636 13.97l1.667 1.667 5.833-5.833 5.833 5.833 1.667-1.666-5.833-5.834 5.833-5.833z"/></symbol>
<symbol id="icon-close" viewBox="0 0 16 15"><g fill-rule="evenodd"><path d="M1.963.045l13.791 12.86-1.364 1.463L.6 1.508z"/><path d="M14.39.045L.6 12.905l1.364 1.463 13.79-12.86z"/></g></symbol>
<symbol id="icon-comments" viewBox="0 0 16 16"><use xlink:href="#def-comments-a" transform="translate(-748 -8949)"/></symbol>
<symbol id="icon-eaye" viewBox="0 0 16 11"><use xlink:href="#def-eaye-a" transform="translate(-614 -8951)"/></symbol>
<symbol id="icon-fb" viewBox="0 0 13 25"><path d="M8.44 25V13.6h3.83l.58-4.45H8.44V6.31c0-1.28.36-2.16 2.2-2.16H13V.18A29.7 29.7 0 009.57 0c-3.4 0-5.73 2.07-5.73 5.87v3.28H0v4.45h3.84V25z"/></symbol>
<symbol id="icon-fb2-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.415 24.638v-7.131h2.457l.366-2.784h-2.823v-1.776c0-.8.23-1.351 1.411-1.351h1.514v-2.49A21.931 21.931 0 0019.14 9c-2.182 0-3.677 1.295-3.677 3.672v2.051H13v2.784h2.463v7.13h2.952z"/></symbol>
<symbol id="icon-fb2" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M30.142 38.625V29.22h3.24l.483-3.671H30.14v-2.343c0-1.056.305-1.782 1.862-1.782H34V18.14a28.937 28.937 0 00-2.902-.14c-2.877 0-4.849 1.708-4.849 4.843v2.706H23v3.671h3.25v9.405h3.892z"/></symbol>
<symbol id="icon-file" viewBox="0 0 24 20"><use xlink:href="#def-file-a" transform="translate(-491 -9437)"/></symbol>
<symbol id="icon-github-mob" viewBox="0 0 34 34"><path d="M17.2 10c-3.978 0-7.2 3.307-7.2 7.386 0 3.263 2.063 6.031 4.923 7.007.36.07.492-.16.492-.355 0-.175-.006-.64-.009-1.256-2.003.445-2.425-.99-2.425-.99-.328-.853-.801-1.081-.801-1.081-.652-.458.05-.449.05-.449.723.052 1.103.761 1.103.761.642 1.13 1.685.803 2.097.615.065-.478.25-.803.456-.988-1.599-.185-3.28-.82-3.28-3.65 0-.806.28-1.464.741-1.981-.08-.187-.324-.938.063-1.955 0 0 .603-.198 1.98.757a6.754 6.754 0 011.8-.25 6.754 6.754 0 011.8.25c1.368-.955 1.971-.757 1.971-.757.387 1.017.144 1.768.072 1.955.46.517.738 1.175.738 1.981 0 2.838-1.683 3.462-3.285 3.644.252.222.486.674.486 1.366 0 .989-.009 1.783-.009 2.023 0 .193.126.424.495.35 2.881-.969 4.942-3.739 4.942-6.997 0-4.079-3.224-7.386-7.2-7.386z"/></symbol>
<symbol id="icon-github" viewBox="0 0 56 56"><path d="M27.913 19C22.436 19 18 23.362 18 28.741c0 4.305 2.84 7.955 6.778 9.242.496.092.677-.21.677-.468 0-.232-.008-.844-.012-1.657-2.758.588-3.34-1.306-3.34-1.306-.45-1.125-1.102-1.425-1.102-1.425-.898-.604.07-.592.07-.592.995.068 1.518 1.004 1.518 1.004.884 1.49 2.32 1.059 2.887.81.09-.63.344-1.059.628-1.302-2.202-.244-4.515-1.082-4.515-4.814 0-1.063.384-1.932 1.02-2.614-.112-.246-.446-1.236.086-2.578 0 0 .83-.26 2.727.999a9.676 9.676 0 012.478-.329 9.676 9.676 0 012.478.329c1.883-1.26 2.714-.999 2.714-.999.532 1.342.198 2.332.099 2.578a3.737 3.737 0 011.016 2.614c0 3.742-2.317 4.566-4.523 4.805.347.293.67.89.67 1.803 0 1.303-.013 2.35-.013 2.667 0 .255.173.56.681.463 3.966-1.279 6.804-4.932 6.804-9.23 0-5.38-4.439-9.741-9.913-9.741z"/></symbol>
<symbol id="icon-gplus" viewBox="0 0 13 8"><use xlink:href="#def-gplus-a" transform="translate(-466 -10165)"/><use xlink:href="#def-gplus-b" transform="translate(-466 -10165)"/></symbol>
<symbol id="icon-head" viewBox="0 0 54 45"><g transform="translate(2 2)" fill-rule="evenodd"><path d="M9.23 19.458v17.61s14.232 8.328 28.462 0V19.231" fill-rule="nonzero"/><path stroke-width="3" fill-rule="nonzero" stroke-linecap="round" stroke-linejoin="round" d="M46.923 13.25L22.99 0 0 14.007l23.179 13.44L46.923 13.25V30"/><path d="M9.23 19.458v17.61s14.232 8.328 28.462 0V19.231" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/><circle stroke-width="3" fill-rule="nonzero" stroke-linecap="round" stroke-linejoin="round" cx="47.308" cy="32.692" r="2.692"/><path d="M32.733 18.745c.53.295 1.074.575 1.604.87 1.302.7 2.468-1.164 1.181-1.865-3.694-1.99-7.403-3.98-11.097-5.957-.53-.294-1.075-.575-1.604-.869-1.302-.7-2.468 1.163-1.181 1.864 3.694 1.99 7.403 3.981 11.097 5.957zM36.733 15.745c.53.295 1.074.575 1.604.87 1.302.7 2.468-1.164 1.181-1.865a4281.61 4281.61 0 00-11.097-5.957c-.53-.294-1.075-.575-1.604-.869-1.302-.7-2.468 1.163-1.181 1.864 3.694 1.99 7.403 3.981 11.097 5.957z" fill-rule="nonzero"/></g></symbol>
<symbol id="icon-inst" viewBox="0 0 26 26"><use xlink:href="#def-inst-a" transform="translate(-1468 -332)"/><use xlink:href="#def-inst-b" transform="translate(-1468 -332)"/><use xlink:href="#def-inst-c" transform="translate(-1468 -332)"/></symbol>
<symbol id="icon-instagram-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M24.027 20.23a3.801 3.801 0 01-3.797 3.797h-6.433A3.801 3.801 0 0110 20.23v-6.433A3.801 3.801 0 0113.797 10h6.433a3.801 3.801 0 013.797 3.797v6.433zm-7.014-7.052a3.84 3.84 0 00-3.835 3.835 3.84 3.84 0 003.835 3.836 3.84 3.84 0 003.836-3.836 3.84 3.84 0 00-3.836-3.835zm0 6.848A3.016 3.016 0 0114 17.013 3.016 3.016 0 0117.013 14a3.016 3.016 0 013.013 3.013 3.016 3.016 0 01-3.013 3.013zm2.794-7.077c0-.625.509-1.133 1.133-1.133.625 0 1.134.508 1.134 1.133s-.509 1.134-1.134 1.134a1.135 1.135 0 01-1.133-1.134z"/></symbol>
<symbol id="icon-instagram" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M37.5 32.492a5.014 5.014 0 01-5.008 5.008h-8.484A5.014 5.014 0 0119 32.492v-8.484A5.014 5.014 0 0124.008 19h8.484a5.014 5.014 0 015.008 5.008v8.484zm-9.25-9.3a5.064 5.064 0 00-5.058 5.058c0 2.79 2.269 5.059 5.058 5.059 2.79 0 5.059-2.27 5.059-5.059 0-2.79-2.27-5.058-5.059-5.058zm0 9.032a3.978 3.978 0 01-3.974-3.974 3.978 3.978 0 013.974-3.974 3.978 3.978 0 013.974 3.974 3.978 3.978 0 01-3.974 3.974zm3.685-9.334c0-.825.67-1.495 1.494-1.495.825 0 1.495.67 1.495 1.495 0 .824-.67 1.495-1.495 1.495-.824 0-1.494-.67-1.494-1.495z"/></symbol>
<symbol id="icon-like-down" viewBox="0 0 20 22"><use xlink:href="#def-like-down-a" transform="translate(-995 -522)"/></symbol>
<symbol id="icon-like-up" viewBox="0 0 20 22"><use xlink:href="#def-like-up-a" transform="translate(-934 -520)"/></symbol>
<symbol id="icon-like" viewBox="0 0 16 16"><use xlink:href="#def-like-a" transform="translate(-687 -8946)"/></symbol>
<symbol id="icon-link" viewBox="0 0 19 21"><use xlink:href="#def-link-a" transform="translate(-624 -1161)"/><use xlink:href="#def-link-b" transform="translate(-624 -1161)"/></symbol>
<symbol id="icon-mail" viewBox="0 0 16 12"><use xlink:href="#def-mail-a" transform="translate(-1042 -260)"/><use xlink:href="#def-mail-b" transform="translate(-1042 -260)"/></symbol>
<symbol id="icon-minus-zoom" viewBox="0 0 26 2"><path stroke-linecap="square" stroke-miterlimit="50" stroke-width="2" d="M1.5 1h23.19"/></symbol>
<symbol id="icon-outside" viewBox="0 0 21 21"><use xlink:href="#def-outside-a" transform="translate(-1185 -9211)"/></symbol>
<symbol id="icon-pencil" viewBox="0 0 20 21"><use xlink:href="#def-pencil-a" transform="translate(-1185 -9800)"/></symbol>
<symbol id="icon-phone" viewBox="0 0 21 22"><use xlink:href="#def-phone-a" transform="translate(-716 -19)"/></symbol>
<symbol id="icon-play-circle" viewBox="0 0 24 24"><path d="M12 24a12 12 0 110-24 12 12 0 010 24zM2 12a10 10 0 1020 0 10 10 0 00-20 0z"/><path d="M11.01 14.52c-.05.28.1.55.35.67.25.13.55.07.74-.14l2.85-2.94c.26-.27.27-.7.02-.98l-2.83-2.94a.69.69 0 00-.75-.13.67.67 0 00-.38.65z"/></symbol>
<symbol id="icon-play-reviews" viewBox="0 0 9 9"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.074 4.507c0 .41-.745.741-.745.741l-5.854 2.91a.619.619 0 01-.563-.054.649.649 0 01-.294-.494V1.392A.586.586 0 01.895.853a.557.557 0 01.595.01l5.839 2.903s.745.331.745.741z"/></symbol>
<symbol id="icon-play" viewBox="0 0 17 17"><path d="M17 9.02c0 .88-1.6 1.59-1.6 1.59L2.84 16.86c-.4.16-.84.12-1.21-.12A1.4 1.4 0 011 15.68V2.33c-.03-.47.2-.92.6-1.16.39-.24.89-.23 1.27.02L15.4 7.43s1.6.71 1.6 1.59z"/></symbol>
<symbol id="icon-plus-zoom" viewBox="0 0 24 24"><path d="M23 13H13v10a1 1 0 01-1 1 1 1 0 01-1-1V13H1a1 1 0 01-1-1 1 1 0 011-1h10V1a1 1 0 011-1 1 1 0 011 1v10h10a1 1 0 011 1 1 1 0 01-1 1z"/></symbol>
<symbol id="icon-plus" viewBox="0 0 16 16"><use xlink:href="#def-plus-a" transform="translate(-1208 -4164)"/></symbol>
<symbol id="icon-search" viewBox="0 0 22 22"><use xlink:href="#def-search-a" transform="translate(-1083 -22)"/></symbol>
<symbol id="icon-shape" viewBox="0 0 48 38"><use xlink:href="#def-shape-a" transform="translate(-832 -13296)"/></symbol>
<symbol id="icon-share" viewBox="0 0 26 24"><path d="M21.03 8a3.95 3.95 0 01-3.02-1.41l-9.08 4.54c.12.55.13 1.11.02 1.66l9.06 4.61a3.98 3.98 0 11-.9 1.79l-9.05-4.61a4 4 0 11-.05-5.22l9.1-4.55A4 4 0 1121.03 8zm0 14a2 2 0 002-2 2 2 0 10-2 2zm-18-10a2 2 0 104 0 2 2 0 00-4 0zm16-8a2 2 0 104 0 2 2 0 00-4 0z"/></symbol>
<symbol id="icon-smile" viewBox="0 0 23 24"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 23.278c-6.351 0-11.5-5.148-11.5-11.5C0 5.427 5.149.278 11.5.278S23 5.427 23 11.778c-.005 6.35-5.15 11.495-11.5 11.5zm0-21.083a9.583 9.583 0 00-9.583 9.583 9.584 9.584 0 1019.167 0A9.599 9.599 0 0011.5 2.195zm-6.613 12.87a7.38 7.38 0 006.613 4.38 7.333 7.333 0 006.613-4.38.957.957 0 00-.93-1.427.96.96 0 00-.796.603 5.277 5.277 0 01-9.774 0 .959.959 0 00-1.726.824zm10.447-3.287a1.917 1.917 0 110-3.833 1.917 1.917 0 010 3.833zM5.75 9.862a1.917 1.917 0 103.833 0 1.917 1.917 0 00-3.833 0z"/></symbol>
<symbol id="icon-socials" viewBox="0 0 40 40"><g fill-rule="evenodd"><circle cx="20" cy="20" r="20"/><path d="M20.021 31h-.485C13.717 31 9 26.08 9 20.009c0-6.07 4.717-10.991 10.536-10.991.309-.024.619-.024.928 0 5.819 0 10.536 4.92 10.536 10.99C31 26.08 26.283 31 20.464 31h-.443zm0-2.198h.316c4.655 0 8.43-3.937 8.43-8.793s-3.775-8.793-8.43-8.793h-.632c-4.655 0-8.43 3.937-8.43 8.793s3.775 8.793 8.43 8.793h.316z"/><path d="M19.382 31C13.648 31 9 26.08 9 20.009c0-6.07 4.648-10.991 10.382-10.991.305-.024.61-.024.914 0 .252.02.488.138.665.33 5.385 5.95 5.385 15.338 0 21.29a.998.998 0 01-1.142.252.992.992 0 01-.437.11zm.322-19.784h-.238c-4.588 0-8.306 3.937-8.306 8.793s3.718 8.793 8.306 8.793a.981.981 0 01.26 0c4.23-5.007 4.23-12.58 0-17.586h-.022z" clip-rule="evenodd"/><path d="M19.91 30.967a1.101 1.101 0 01-.419-.077 1.101 1.101 0 01-1.21-.253c-5.708-5.95-5.708-15.337 0-21.288a1.1 1.1 0 01.704-.33 6.664 6.664 0 011.012 0C26.074 9.02 31 13.94 31 20.01S26.074 31 19.997 31l-.088-.033zm-.353-19.783a13.177 13.177 0 000 17.585c.091-.012.184-.012.275 0 4.861 0 8.802-3.936 8.802-8.792s-3.94-8.793-8.802-8.793h-.275z" clip-rule="evenodd"/><path d="M27.944 17H11.056C10.473 17 10 16.552 10 16s.473-1 1.056-1h16.888c.583 0 1.056.448 1.056 1s-.473 1-1.056 1zM27.944 25H11.056C10.473 25 10 24.552 10 24s.473-1 1.056-1h16.888c.583 0 1.056.448 1.056 1s-.473 1-1.056 1z"/></g></symbol>
<symbol id="icon-strawberry" viewBox="0 0 49 48"><use xlink:href="#def-strawberry-a" transform="translate(-832 -13406)"/></symbol>
<symbol id="icon-telegram" viewBox="0 0 29 24"><use xlink:href="#def-telegram-a" transform="translate(-795 -271)"/></symbol>
<symbol id="icon-telegram2-mob" viewBox="0 0 34 34"><path d="M14.95 19.329l-.25 3.528c.358 0 .514-.154.7-.34l1.683-1.607 3.486 2.553c.64.356 1.09.168 1.263-.588L24.12 12.15c.204-.946-.341-1.316-.964-1.084l-13.452 5.15c-.918.357-.904.869-.156 1.1l3.44 1.07 7.988-4.998c.375-.25.717-.112.436.137L14.95 19.33z"/></symbol>
<symbol id="icon-telegram2" viewBox="0 0 56 56"><path d="M25.848 30.985l-.331 4.653c.473 0 .678-.203.924-.447l2.22-2.121 4.598 3.367c.843.47 1.437.223 1.665-.776l3.018-14.143.001-.001c.268-1.247-.45-1.734-1.272-1.428L18.929 26.88c-1.211.47-1.193 1.145-.206 1.451l4.536 1.411 10.536-6.593c.495-.328.946-.146.575.182l-8.522 7.653z"/></symbol>
<symbol id="icon-tm" viewBox="0 0 26 22"><use xlink:href="#def-tm-a" transform="translate(-1399 -334)"/></symbol>
<symbol id="icon-trash" viewBox="0 0 20 21"><use xlink:href="#def-trash-a" transform="translate(-1156 -9799)"/></symbol>
<symbol id="icon-triangle" viewBox="0 0 16 8"><use xlink:href="#def-triangle-a" transform="translate(-1237 -6883)"/></symbol>
<symbol id="icon-tw" viewBox="0 0 18 15"><path d="M18 1.75c-.66.3-1.37.5-2.12.59A3.7 3.7 0 0017.5.27c-.71.43-1.5.74-2.34.91a3.68 3.68 0 00-6.39 2.56c0 .3.03.58.09.85A10.45 10.45 0 011.25.69 3.75 3.75 0 002.4 5.68a3.67 3.67 0 01-1.68-.47v.05a3.75 3.75 0 002.97 3.67 3.51 3.51 0 01-1.67.06 3.7 3.7 0 003.45 2.6A7.33 7.33 0 010 13.14a10.37 10.37 0 005.66 1.68c6.79 0 10.51-5.7 10.51-10.64l-.01-.49A7.35 7.35 0 0018 1.76z"/></symbol>
<symbol id="icon-twitter-mob" viewBox="0 0 34 34"><path d="M24.406 12.386a6.16 6.16 0 01-1.702.466 2.937 2.937 0 001.3-1.632c-.572.34-1.202.58-1.873.715a2.952 2.952 0 00-5.109 2.02c0 .233.02.458.068.672a8.36 8.36 0 01-6.087-3.089 2.957 2.957 0 00.908 3.947 2.917 2.917 0 01-1.335-.363v.032a2.967 2.967 0 002.366 2.902c-.24.066-.502.097-.774.097-.189 0-.38-.01-.56-.05a2.981 2.981 0 002.76 2.057 5.934 5.934 0 01-3.661 1.26c-.242 0-.475-.011-.707-.04a8.314 8.314 0 004.53 1.325c5.435 0 8.406-4.502 8.406-8.404 0-.13-.004-.257-.01-.382a5.89 5.89 0 001.48-1.533z"/></symbol>
<symbol id="icon-twitter" viewBox="0 0 56 56"><path d="M38 21.828c-.707.31-1.46.515-2.244.615a3.874 3.874 0 001.713-2.153 7.783 7.783 0 01-2.47.943 3.894 3.894 0 00-6.738 2.664c0 .308.026.605.09.887a11.025 11.025 0 01-8.028-4.074 3.922 3.922 0 00-.533 1.969 3.9 3.9 0 001.73 3.237 3.847 3.847 0 01-1.76-.48v.043a3.913 3.913 0 003.12 3.827 3.887 3.887 0 01-1.02.129c-.25 0-.502-.015-.738-.067.505 1.543 1.937 2.677 3.64 2.714a7.827 7.827 0 01-4.83 1.66c-.32 0-.626-.013-.932-.052a10.966 10.966 0 005.976 1.748c7.167 0 11.086-5.938 11.086-11.085a9.95 9.95 0 00-.014-.503A7.77 7.77 0 0038 21.828z"/></symbol>
<symbol id="icon-user-circle" viewBox="0 0 24 24"><use xlink:href="#def-user-circle-a" transform="translate(-1244 -22)"/></symbol>
<symbol id="icon-vb" viewBox="0 0 25 27"><use xlink:href="#def-vb-a" transform="translate(-931 -270)"/></symbol>
<symbol id="icon-view-list" viewBox="0 0 15 15"><path d="M0 6V0h15v6zm0 9V9h15v6z"/></symbol>
<symbol id="icon-view-tile" viewBox="0 0 15 15"><path d="M0 6V0h6v6zm9 0V0h6v6zm0 9V9h6v6zm-9 0V9h6v6z"/></symbol>
<symbol id="icon-vk" viewBox="0 0 22 14"><path d="M10.61 13.8h1.3s.39-.04.59-.27c.19-.2.18-.59.18-.59s-.02-1.8.78-2.07c.8-.26 1.82 1.75 2.91 2.52.81.58 1.44.46 1.44.46l2.89-.05s1.52-.09.8-1.33c-.06-.1-.42-.92-2.15-2.59-1.82-1.75-1.58-1.47.61-4.5 1.33-1.84 1.87-2.97 1.7-3.45-.16-.46-1.14-.34-1.14-.34l-3.26.02s-.24-.03-.42.08-.29.36-.29.36-.52 1.43-1.2 2.64c-1.46 2.57-2.04 2.7-2.27 2.54-.56-.37-.42-1.49-.42-2.28 0-2.49.36-3.52-.71-3.79A5.26 5.26 0 0010.43 1c-1.16-.01-2.15.01-2.7.29-.38.19-.66.61-.49.63.22.03.71.14.97.51.33.47.32 1.53.32 1.53s.19 2.92-.45 3.29c-.44.25-1.04-.26-2.34-2.59-.66-1.19-1.16-2.5-1.16-2.5s-.1-.25-.27-.38c-.21-.16-.5-.21-.5-.21l-3.1.02s-.47.01-.64.22c-.15.19-.01.58-.01.58s2.43 5.89 5.17 8.87c2.52 2.72 5.38 2.54 5.38 2.54z"/></symbol>
<symbol id="icon-vk2-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.79 21.913h.947a.77.77 0 00.436-.201.795.795 0 00.13-.459s-.016-1.399.573-1.608c.588-.209 1.336 1.351 2.13 1.954.297.259.68.383 1.063.346l2.123-.032s1.116-.073.589-1.03a7.642 7.642 0 00-1.582-2.002c-1.337-1.35-1.153-1.134.451-3.473.978-1.424 1.367-2.3 1.245-2.67a.866.866 0 00-.832-.257l-2.4.016a.463.463 0 00-.305.056.702.702 0 00-.214.282 15.134 15.134 0 01-.886 2.042c-1.062 1.978-1.49 2.082-1.665 1.962-.405-.29-.306-1.15-.306-1.77 0-1.913.268-2.717-.511-2.926a4.053 4.053 0 00-1.123-.12 4.804 4.804 0 00-1.987.225c-.275.144-.48.466-.351.49.273.03.524.167.703.386.165.37.246.774.237 1.182 0 0 .145 2.26-.329 2.54-.32.194-.764-.2-1.719-1.993a17.581 17.581 0 01-.848-1.938.803.803 0 00-.198-.29.84.84 0 00-.367-.16l-2.276.016a.723.723 0 00-.466.169.581.581 0 00-.016.442s1.788 4.559 3.805 6.859c.99 1.217 2.427 1.931 3.95 1.962z"/></symbol>
<symbol id="icon-vk2" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M28.274 34.074h1.25c.213-.024.413-.117.574-.265.117-.177.177-.39.172-.605 0 0-.02-1.845.755-2.12.776-.276 1.763 1.78 2.811 2.576.391.342.895.506 1.4.456l2.802-.042s1.47-.096.775-1.358a10.079 10.079 0 00-2.085-2.64c-1.763-1.782-1.522-1.495.594-4.582 1.29-1.877 1.804-3.033 1.642-3.52a1.143 1.143 0 00-1.098-.34l-3.163.021a.61.61 0 00-.403.075.925.925 0 00-.282.37 19.972 19.972 0 01-1.17 2.694c-1.4 2.61-1.964 2.747-2.196 2.588-.534-.382-.403-1.516-.403-2.333 0-2.524.353-3.584-.675-3.86a5.345 5.345 0 00-1.48-.16 6.336 6.336 0 00-2.62.298c-.363.19-.635.615-.464.646.36.039.691.221.927.51.218.487.325 1.02.312 1.558 0 0 .192 2.98-.433 3.352-.423.254-1.007-.265-2.267-2.63a23.184 23.184 0 01-1.118-2.556 1.06 1.06 0 00-.262-.382 1.109 1.109 0 00-.484-.212l-3.002.021a.953.953 0 00-.615.223.767.767 0 00-.02.583s2.358 6.013 5.018 9.046c1.305 1.606 3.2 2.548 5.209 2.588z"/></symbol>
<symbol id="icon-yandex" viewBox="0 0 5 11"><path d="M4.847 0H3.259C1.7 0 .376 1.169.376 3.438c0 1.36.64 2.364 1.783 2.86L.028 10.092c-.07.123 0 .22.111.22h.99c.083 0 .139-.028.166-.097L3.231 6.49h.697v3.726c0 .041.041.097.097.097h.864c.083 0 .111-.042.111-.11V.138C5 .04 4.944 0 4.847 0zm-.92 5.61h-.584c-.92 0-1.81-.66-1.81-2.31 0-1.719.835-2.42 1.684-2.42h.71v4.73z" fill-rule="nonzero"/></symbol>
<symbol id="icon-ynadex" viewBox="0 0 5 10"><use xlink:href="#def-ynadex-a" transform="translate(-468 -10321)"/></symbol>
<symbol id="icon-ytube" viewBox="0 0 27 20"><use xlink:href="#def-ytube-a" transform="translate(-1332 -335)"/></symbol>
</svg>
<div class="header-banner topBanner" data-type="header" style="display: block; position: sticky; top: 0; z-index: 999;">
<a data-source="219534" data-banner="226288" class="universal-notice js-universal-notice-notice universal-notice--webp universal-notice--bitrix universal-notice--active" href="https://skillbox.ru/sale/main/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_banners_header_all_all_skillbox" target="_blank" style="--banner-bg: #5927E9;--banner-color: #fff;--button-font-color: #000000;--button-bg-color: #FFFFFF;--banner-img-left: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_left/602754/f9ac17dd-a1d4-46c6-aa14-4f7b949defd1.png);--banner-img-left-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_left/602754/f9ac17dd-a1d4-46c6-aa14-4f7b949defd1.webp);--banner-img-center: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.png);--banner-img-center-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.webp);--banner-img-center-mobile: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.png);--banner-img-center-mobile-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.webp);--banner-img-right: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_right/602755/ad7a7fe5-b8d3-47a3-885b-51a7971c12a9.png);--banner-img-right-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_right/602755/ad7a7fe5-b8d3-47a3-885b-51a7971c12a9.webp);">
<span class="universal-notice__wrapper">
<b class="universal-notice__title">
Скидка до 55% и 3 курса в подарок
</b>
<span class="universal-timer js-universal-notice-timer js-universal-notice-active">
<span class="universal-timer__days js-universal-notice-days">2 дня</span>
<span class="js-universal-notice-hours">13</span>
:<span class="js-universal-notice-minutes">30</span>
:<span class="js-universal-notice-seconds">09</span>
</span>
<span class="universal-notice__button">Выбрать курс</span>
</span>
</a><script>
document.addEventListener('DOMContentLoaded', () => {
// Установите конечную дату
const deadline = new Date();
deadline.setDate(5);
deadline.setHours(0, 0, 0);
// Найдите элементы DOM
var timer = document.querySelector('.universal-timer');
const elDays = timer.querySelector('.js-universal-notice-days');
const elHours = timer.querySelector('.js-universal-notice-hours');
const elMinutes = timer.querySelector('.js-universal-notice-minutes');
const elSeconds = timer.querySelector('.js-universal-notice-seconds');
// Функция обновления таймера
const updateTimer = () => {
const now = new Date();
let diff = Math.max(0, deadline - now);
if (diff === 0) {
let lastDayOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0);
let lastDay = lastDayOfMonth.getDate();
if (lastDay - now.getDate() < 4) {
deadline.setMonth(deadline.getMonth() + 1, 1);
} else {
deadline.setDate(deadline.getDate() + 4);
}
diff = Math.max(0, deadline - now);
}
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(diff / (1000 * 60 * 60 * 24));
var hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)).toString();
var minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)).toString();
var seconds = Math.floor((diff % (1000 * 60)) / 1000).toString();
if (timer) {
let dayTitles = ['день', 'дня', 'дней'];
let daySuffix = dayTitles[(days % 100 > 4 && days % 100 < 20) ? 2 : [2, 0, 1, 1, 1, 2][days % 10 < 5 ? days % 10 : 5]]
elDays.innerHTML = days + ' ' + daySuffix;
elHours.innerHTML = hours.padStart(2, '0');
elMinutes.innerHTML = minutes.padStart(2, '0');
elSeconds.innerHTML = seconds.padStart(2, '0');
}
};
updateTimer();
const timerId = setInterval(updateTimer, 1000);
});
</script>
<style>@font-face{font-display:swap;font-family:Graphik;font-weight:500;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Graphik;font-weight:700;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Bold.woff2) format("woff2")}.universal-notice{position:sticky;z-index:5;top:0;box-sizing:border-box;text-decoration:none;display:none;justify-content:space-between;overflow:hidden;color:var(--banner-color);background-color:var(--banner-bg);font-family:Graphik,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:opacity .25s ease-in-out}.universal-notice--active{display:flex}.universal-notice--bitrix{z-index:1000}.universal-notice *,.universal-notice ::after,.universal-notice ::before{box-sizing:inherit}.universal-notice::after,.universal-notice::before{display:none;width:194px;height:56px;content:"";background-size:194px 56px;background-repeat:no-repeat}.universal-notice--no-webp::before{background-image:var(--banner-img-left)}.universal-notice--no-webp::after{background-image:var(--banner-img-right)}.universal-notice--webp::before{background-image:var(--banner-img-left-webp)}.universal-notice--webp::after{background-image:var(--banner-img-right-webp)}.universal-notice--new-design{position:static;margin:4px;border-radius:16px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:166px;height:48px;background-size:166px 48px}.universal-notice__wrapper{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:12px;padding:12px;width:100%}.universal-notice--new-design .universal-notice__wrapper::after{height:48px}.universal-notice__title{font-weight:500;font-size:15px;line-height:16px}.universal-notice--new-design .universal-notice__title{font-size:14px;line-height:15px}.universal-timer{display:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500;font-size:24px;line-height:26px}.universal-notice--new-design .universal-timer{font-size:22px;line-height:24px}.universal-timer__days{margin-right:8px}.universal-notice__button{grid-column:2/3;padding:6px 16px;border-radius:6px;color:var(--button-font-color);background-color:var(--button-bg-color);font-weight:500;font-size:14px;line-height:20px}.universal-notice-sticky{position:fixed;z-index:5;top:0;left:0;width:100%;padding:11px 8px;color:var(--banner-color);background-color:var(--banner-bg);text-align:center;transition:transform .3s ease-in-out;will-change:transform;transform:translateY(-200%)}.universal-notice-sticky--show{transform:translateY(0)}@media (min-width:360px) and (max-width:0px){.universal-notice__wrapper{padding:0 12px;grid-template-columns:1fr 56px auto}.universal-notice__wrapper::after{grid-column:2/3;grid-row:1/2;width:100%;height:56px;background-size:cover;background-repeat:no-repeat;content:""}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 48px auto}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile-webp)}.universal-notice__button{grid-column:3/4}}@media (min-width:360px){.universal-notice__wrapper{padding:0 12px;grid-template-columns:1fr 56px auto}.universal-notice__wrapper::after{grid-column:2/3;grid-row:1/2;width:100%;height:56px;background-size:cover;background-repeat:no-repeat;content:""}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 48px auto}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile-webp)}.universal-notice__button{grid-column:3/4}}@media (min-width:768px){.universal-notice::before{background-position:right center;flex-shrink:0;display:block}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-webp)}}@media (min-width:768px) and (max-width:0px){.universal-notice::before{background-position:right center;flex-shrink:0;display:block}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-webp)}}@media (min-width:1024px){.universal-notice::after,.universal-notice::before{width:250px;height:72px;background-size:250px 72px}.universal-notice--new-design{height:64px;border-radius:32px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:226px;height:64px;background-size:226px 64px}.universal-notice__wrapper{grid-template-columns:1fr 72px auto;grid-gap:24px;padding-right:16px;padding-left:24px}.universal-notice__wrapper::after{height:72px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px auto}.universal-notice--new-design .universal-notice__wrapper::after{height:64px}.universal-notice__title{font-size:24px;line-height:26px}.universal-notice--new-design .universal-notice__title{font-size:22px;line-height:24px}.universal-notice__button{padding:10px 24px;border-radius:8px}.universal-notice-sticky{padding:14px 24px}}@media (min-width:1024px) and (max-width:0px){.universal-notice::after,.universal-notice::before{width:250px;height:72px;background-size:250px 72px}.universal-notice--new-design{height:64px;border-radius:32px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:226px;height:64px;background-size:226px 64px}.universal-notice__wrapper{grid-template-columns:1fr 72px auto;grid-gap:24px;padding-right:16px;padding-left:24px}.universal-notice__wrapper::after{height:72px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px auto}.universal-notice--new-design .universal-notice__wrapper::after{height:64px}.universal-notice__title{font-size:24px;line-height:26px}.universal-notice--new-design .universal-notice__title{font-size:22px;line-height:24px}.universal-notice__button{padding:10px 24px;border-radius:8px}.universal-notice-sticky{padding:14px 24px}}@media (min-width:1280px){.universal-notice::before{flex-shrink:1}.universal-notice::after{background-position:left center;display:block}.universal-notice__wrapper{grid-template-columns:1fr 72px minmax(202px,auto) auto;min-width:940px;max-width:1020px;padding-right:24px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px minmax(202px,auto) auto}.universal-timer.js-universal-notice-active{display:flex}.universal-notice__timer-nuxt{display:flex}.universal-notice__button{grid-column:4/5}}@media (min-width:1280px) and (max-width:0px){.universal-notice::before{flex-shrink:1}.universal-notice::after{background-position:left center;display:block}.universal-notice__wrapper{grid-template-columns:1fr 72px minmax(202px,auto) auto;min-width:940px;max-width:1020px;padding-right:24px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px minmax(202px,auto) auto}.universal-timer.js-universal-notice-active{display:flex}.universal-notice__timer-nuxt{display:flex}.universal-notice__button{grid-column:4/5}}@media (min-width:1400px) and (max-width:0px){.universal-notice::before{flex-shrink:0}.universal-notice::after{flex-shrink:0}}@media (min-width:1400px){.universal-notice::before{flex-shrink:0}.universal-notice::after{flex-shrink:0}}</style> </div>
<script>
document.addEventListener("DOMContentLoaded", function(event) {
window.TopBanner = true;
});
$(document).ready(function () {
$.ajax({
url: '/local/ajax/advert.php',
type: 'POST',
data: {
'type': 'top-banner-show',
'id': 226288,
'section_id': 0,
},
success: function (result) {
}
});
});
$(document).on('click', '.header-banner', function () {
$.ajax({
url: '/local/ajax/advert.php',
type: 'POST',
data: {
'type': 'top-banner-click',
'id': 226288,
'section_id': 0,
},
success: function (result) {
}
});
var page = window.location;
var $article = $('section[data-article-text]');
var pageId = $article.data('articleid');
if(pageId === undefined)
{
pageId = 0;
}
window.dataLayer.push({
'event': 'go_to_course',
'courseID': 226288,
'page': page,
'pageID': pageId
});
});
</script>
<header class="header">
<div id="menu" class="header__wrapper container">
<div class="header__logo link-active">
<a href="/media/" class="header__media-main-link">
<img src="/local/templates/media/images/logo/skillbox-media.svg" alt="Skillbox"/>
</a>
<a href="/media/code/" class="header__media-category-link">
<span class="header__media-category js-category ">Код</span>
</a>
</div>
<a href="/media/about-media/" v-if="!isMobile" rel="nofollow" class="menu-nav__link menu-nav__link--about" target="_blank" style="display: none">
Про медиа
</a>
<button v-if="!isMobile" v-show="!isMobile" rel="nofollow" class="toggle-menu header__toggle toggle-menu--course"
@click="openCourseMenu()"
:class="{ 'toggle-menu--active': isOpenCourseMenu }"
style="display: none">
Онлайн-курсы
<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg"
:class="{
'animated-chevron--default': isOpenCourseMenu,
'animated-chevron--active animated-chevron--default': ! isOpenCourseMenu
}"
class="animated-chevron toggle-menu__arrow select-arrow select-arrow--small">
<line x1="6.48415" y1="5.92242" x2="11.4909" y2="10.9291" stroke="currentColor" stroke-width="1.78"
class=" animated-chevron__line animated-chevron__line1 animated-chevron__line1--default"></line>
<line x1="6.3701" y1="5.9224" x2="11.3768" y2="0.915678" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line"></line>
<line x1="1.36337" y1="10.9291" x2="6.3701" y2="5.9224" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line animated-chevron__line2 animated-chevron__line2--default"></line>
<line x1="1.47743" y1="0.915681" x2="6.48415" y2="5.9224" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line"></line>
</svg>
</button>
<a href="https://skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=button_main_skillbox&utm_term=mainskillbox" v-if="!isMobile" v-show="!isMobile" rel="nofollow" class="menu-nav__link menu-nav__link-ml0 menu-nav__link--main" target="_blank" style="display: none">
Главная Skillbox
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.9375 10.0618L9.9161 4.08203" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.93811 3.93665H10.0631V10.0616" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<div v-if="isOpenCourseMenu && !isMobile" class="menu-block menu-block--desktop" @click="closeCourseMenu($event)" style="display: none">
<div class="menu-block__wrapper menu-block__wrapper--desktop">
<div class="menu-block__content vue-container">
<span class="menu-block__title">
Направления обучения
</span>
<ul class="menu-directions menu-block__direction">
<li class="menu-directions__item">
<a href="https://skillbox.ru/courses/?utm_source=media&utm_medium=button&utm_campaign=button_courses_all&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="All directions">
Все направления
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/code/?utm_source=media&utm_medium=button&utm_campaign=button_courses_code&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Code">
Программирование
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/design/?utm_source=media&utm_medium=button&utm_campaign=button_courses_design&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Design">
Дизайн
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/management?utm_source=media&utm_medium=button&utm_campaign=button_courses_management&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Management">
Управление
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/marketing?utm_source=media&utm_medium=button&utm_campaign=button_courses_marketing&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Marketing">
Маркетинг
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/games?utm_source=media&utm_medium=button&utm_campaign=button_courses_games&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="GameDev">
Игры
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/multimedia?utm_source=media&utm_medium=button&utm_campaign=button_courses_multimedia&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="">
Кино и Музыка
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/psychology?utm_source=media&utm_medium=button&utm_campaign=button_courses_psychology&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Психология
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/health?utm_source=media&utm_medium=button&utm_campaign=button_courses_health&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Здоровье
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/spo/?utm_source=media&utm_medium=button&utm_campaign=button_courses_spo&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Цифровой колледж
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/general-development/?utm_source=media&utm_medium=button&utm_campaign=button_courses_general-development&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Education">
Общее развитие
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/engineering/?utm_source=media&utm_medium=button&utm_campaign=button_courses_engineering&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="engineering">
Инженерия
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/english/?utm_source=media&utm_medium=button&utm_campaign=button_courses_english&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="english">
Английский язык
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/other/?utm_source=media&utm_medium=button&utm_campaign=button_courses_other&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Other">
Другое
</a>
</li>
</ul>
</div>
</div>
</div>
<div v-show="isOpenMenu" class="menu-block" @click="closeMenu($event)" style="display: none">
<div class="menu-block__wrapper">
<div class="menu-block__content vue-container">
<h2 class="menu-block__header">Редакции</h2>
<div class="tab-nav" data-tab-parent="" data-action="index">
<div class="tab-nav__item">
<a class="" data-tab-name="media_nav" data-section-id="0" data-code="All directions" href="/media/">
<img src="/local/templates/media/images/common/menu-icon-mobile-1.png" alt=""/>
Все
</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="/media/topic/history/">
<img src="/local/templates/media/images/common/menu-icon-mobile-19.png"
alt=""/>
Истории</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="8"
data-code="Design"
href="/media/design/">
<img src="/local/templates/media/images/common/menu-icon-mobile-2.png" alt=""/>
Дизайн</a>
</div>
<div class="tab-nav__item">
<a class="tab-active"
data-tab-name="media_nav"
data-section-id="10"
data-code="Code"
href="/media/code/">
<img src="/local/templates/media/images/common/menu-icon-mobile-3.png" alt=""/>
Код</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="18"
data-code="GameDev"
href="/media/gamedev/">
<img src="/local/templates/media/images/common/menu-icon-mobile-4.png" alt=""/>
Геймдев</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="21"
data-code="Business"
href="/media/business/">
<img src="/local/templates/media/images/common/menu-icon-mobile-9.png" alt=""/>
Бизнес</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="9"
data-code="Marketing"
href="/media/marketing/">
<img src="/local/templates/media/images/common/menu-icon-mobile-5.png" alt=""/>
Маркетинг</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="11"
data-code=""
href="/media/management/">
<img src="/local/templates/media/images/common/menu-icon-mobile-6.png" alt=""/>
Управление</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="29"
data-code=""
href="/media/cinemusic/">
<img src="/local/templates/media/images/common/menu-icon-mobile-22.png" alt=""/>
Кино</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="36"
data-code=""
href="/media/music/">
<img src="/local/templates/media/images/common/menu-icon-mobile-23.png" alt=""/>
Музыка</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="34"
data-code=""
href="/media/photo/">
<img src="/local/templates/media/images/common/menu-icon-mobile-20.png" alt=""/>
Проектная фотография</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="17"
data-code="Development"
href="/media/growth/">
<img src="/local/templates/media/images/common/menu-icon-mobile-7.png" alt=""/>
Развитие</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="33"
data-code=""
href="/media/health/">
<img src="/local/templates/media/images/common/menu-icon-mobile-16.png" alt=""/>
Здоровье</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="32"
data-code=""
href="/media/money/">
<img src="/local/templates/media/images/common/menu-icon-mobile-17.png" alt=""/>
Деньги</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="22"
data-code="Education"
href="/media/education/">
<img src="/local/templates/media/images/common/menu-icon-mobile-8.png" alt=""/>
Образование</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="31"
data-code=""
href="/media/edtech/">
<img src="/local/templates/media/images/common/menu-icon-mobile-11.png" alt=""/>
EdTech</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="30"
data-code=""
href="/media/corptrain/">
<img src="/local/templates/media/images/common/menu-icon-mobile-10.png" alt=""/>
Корп. обучение</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="35"
data-code=""
href="/media/skillbox-blog/">
<img src="/local/templates/media/images/common/menu-icon-mobile-21.png" alt=""/>
Блог Skillbox</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="https://skillbox.ru/media/glossary/">
<img src="/local/templates/media/images/common/menu-icon-mobile-18.png"
alt=""/>
Глоссарий</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="/media/topic/specials/">
<img src="/local/templates/media/images/common/menu-icon-mobile-13.png"
alt=""/>
Спецпроекты</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="https://skillbox.ru/course/career-guide-free/">
<img src="/local/templates/media/images/common/menu-icon-mobile-15.png"
alt=""/>
Профориентация</a>
</div>
</div>
<h2 class="menu-block__header">Онлайн-курсы</h2>
<ul class="menu-directions menu-block__direction">
<li class="menu-directions__item">
<a href="https://skillbox.ru/courses/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="All directions">
Все направления
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/code/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Code">
Программирование
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/design/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Design">
Дизайн
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/marketing/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Marketing">
Маркетинг
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/management/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Management">
Управление
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/games/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="GameDev">
Игры
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/multimedia/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="">
Мультимедиа
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/psychology/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Психология
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/general-development/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Education">
Общее развитие
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/engineering/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="engineering">
Инженерия
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/english/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="english">
Английский язык
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/other/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Other">
Другое
</a>
</li>
</ul>
<a href="/media/about-media/" rel="nofollow" class="menu-nav__link">
Про медиа
</a>
<a href="https://skillbox.ru/" rel="nofollow" class="menu-nav__link">
Главная Skillbox
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.9375 10.0618L9.9161 4.08203" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.93811 3.93665H10.0631V10.0616" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</div>
</div>
</div>
<button v-if="isMobile" class="menu-toggle"
@click="openMenu()"
:class="{ 'menu-toggle--opened': isOpenMenu }" style="opacity: 0">
<span v-if="isOpenMenu" class="menu-toggle__line"></span>
<svg v-if="!isOpenMenu" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24 5.5H0V4H24V5.5ZM24 11.5H0V13H24V11.5ZM24 19H0V20.5H24V19Z" fill="black"/>
</svg>
</button>
</div>
<script>
BX.Vue.create({
el: '#menu',
data: {
isOpenMenu: false,
isOpenCourseMenu: false,
isMobile: false,
isSubOpen: false,
display: 'none'
},
computed: {
isMobile() {
const w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
return w < 1024;
}
},
methods: {
openMenu() {
this.isOpenMenu = !this.isOpenMenu;
document.getElementsByTagName('body')[0].classList.toggle('scroll-locked');
window.addEventListener('keyup', this.closeMenu);
},
closeMenu(event) {
if (event.target.classList.contains('menu-block') || event.keyCode === 27) {
this.isOpenMenu = false;
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeMenu);
}
},
openCourseMenu() {
this.isOpenCourseMenu = !this.isOpenCourseMenu;
if (this.isOpenCourseMenu) {
document.getElementsByTagName('body')[0].classList.add('scroll-locked');
window.addEventListener('keyup', this.closeCourseMenu);
} else {
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeCourseMenu);
}
},
closeCourseMenu(event) {
if (event.target.classList.contains('menu-block') || event.keyCode === 27) {
this.isOpenCourseMenu = false;
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeCourseMenu);
}
},
openSub() {
this.isSubOpen = !this.isSubOpen;
},
isMobileFn() {
const w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
this.isMobile = (w < 1024);
}
},
created() {
window.addEventListener("resize", this.isMobileFn);
document.querySelector('.menu-block').style.display = '';
document.querySelector('.menu-toggle').style.opacity = '1';
document.querySelector('.menu-nav__link').style.display = '';
this.display = 'block';
this.isMobileFn();
},
destroyed() {
window.removeEventListener("resize", this.isMobileFn);
}
});
</script>
</header>
<main class="content">
<div class="page style-update">
<div class="page-wrap">
<style>
.article-inner .rr-widget__title {
padding-top: 0 !important;
}
.article-inner div[data-retailrocket-markup-block] {
margin-top: -32px;
display: none;
}
.article-inner {
font-family: 'Graphik';
}
</style>
<div class="under_header_banner" data-type="under_header"><!-- Yandex.RTB R-A-13443663-10 -->
<div id="yandex_rtb_R-A-13443663-10"></div>
<script>
window.yaContextCb.push(() => {
Ya.Context.AdvManager.render({
"blockId": "R-A-13443663-10",
"renderTo": "yandex_rtb_R-A-13443663-10"
})
})
</script>
</div> <div data-area="article" data-title="Методы массивов JS: forEach, reduce, filter, slice / Skillbox Media" class=" noFullClass">
<div class="article-inner">
<section class="top-section-detail-page ">
<div class="container">
<div class="article-preview-info">
<div class="article-preview-info__tags article-preview-info__tags--complex ">
<div class="tag article-preview-info__tag">
<a href="/media/code/"
class="tag-item programming">
Код </a>
<a href="/media/guide/"
class="tag-item">
Справочник по фронтенду
</a>
</div>
</div>
<a class="info-hashtag article-preview-info__hashtag" href="/media/topic/articles/">
#статьи </a>
<ul class="info article-preview__info-box">
<li class="info-item"> <time class="info-text" datatime="#">19 июн 2024</time></li>
<li class="info-item hidden">
<span class="info-icon"><img src="/local/templates/media/images/icons/like.svg" alt=""></span>
<span class="info__text js-article-like-value">0</span>
</li>
</ul>
</div>
<div class="row">
<div class="top-section-detail-page__title-block col-xl-9 col-lg-10">
<div class="article-preview">
<h1 class="article-preview__title">Методы массивов в JavaScript: объясняем на пальцах для новичков</h1>
<p class="article-preview__description">Перебираем, сортируем, фильтруем и делаем с массивами всякое.</p>
</div>
</div>
</div>
</div>
</section>
<section data-article-text
data-articleId="219534"
data-courseId="3357"
>
<div class="container">
<noindex>
<div class="share" data-nosnippet>
<button class="share__handler-btn ">
<span class="share__handler-icon">
<svg width="11" height="12" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11 4.99902L6 0V2.99805C2.688 2.99805 0 5.68505 0 8.99805V11.498H0.0980225C0.765022 8.91205 3.107 6.99805 5.901 6.99805H6.00098V9.99805L11 4.99902Z" fill="currentColor"/>
</svg>
</span>
<span class="share__handler-text">Поделиться</span>
</button>
<div class="share__list">
<a href="#" class="share__item" data-code="vk">
<span class="share__item-icon share__item-icon--vk">
<svg width="9" height="5" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.04776 4.98054H4.53996C4.62377 4.97136 4.70279 4.9361 4.76621 4.87951C4.81226 4.81209 4.83594 4.73139 4.83369 4.64925C4.83369 4.64925 4.82574 3.94629 5.1314 3.84125C5.43701 3.73621 5.826 4.51998 6.23879 4.82297C6.39281 4.95308 6.59128 5.01558 6.79053 4.99669L7.89399 4.98054C7.89399 4.98054 8.47355 4.94415 8.19965 4.46339C7.98372 4.08315 7.70589 3.743 7.37799 3.45744C6.68338 2.77872 6.77865 2.8878 7.61219 1.71216C8.12024 0.997077 8.32269 0.556717 8.25918 0.370875C8.14651 0.254767 7.98299 0.205914 7.82655 0.241594L6.58018 0.249674C6.52565 0.241067 6.46984 0.251007 6.42141 0.277954C6.37298 0.314507 6.33466 0.363228 6.31025 0.419356C6.18259 0.772814 6.0287 1.11586 5.8498 1.44552C5.29807 2.43936 5.07579 2.49188 4.98451 2.43128C4.77416 2.28584 4.82574 1.85356 4.82574 1.54248C4.82574 0.580957 4.96468 0.176954 4.55979 0.0719133C4.36879 0.0254376 4.17259 0.00505841 3.97631 0.0113129C3.62834 -0.0214164 3.27745 0.017045 2.94429 0.124433C2.8014 0.197154 2.69423 0.358753 2.76171 0.370875C2.90334 0.385518 3.03406 0.454932 3.12688 0.564795C3.21268 0.750336 3.25481 0.953675 3.24993 1.15868C3.24993 1.15868 3.32535 2.29392 3.07925 2.43532C2.91254 2.53228 2.68232 2.33432 2.18616 1.4334C2.01958 1.11848 1.87243 0.793298 1.74557 0.459754C1.72231 0.404013 1.68704 0.354309 1.64236 0.314316C1.58589 0.272672 1.52066 0.245006 1.45184 0.233514L0.268986 0.241594C0.181167 0.241154 0.0958013 0.271066 0.0268587 0.326434C-0.00595087 0.396174 -0.00882613 0.476652 0.0189202 0.548633C0.0189202 0.548633 0.947737 2.83932 1.99563 3.99477C2.51 4.60651 3.2568 4.96526 4.04776 4.98054Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Vkontakte</span>
</a>
<a href="#" class="share__item" data-code="tw">
<span class="share__item-icon share__item-icon--tw">
<svg width="9" height="7" viewBox="0 0 9 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.52788 0.00144284V0H5.9158L6.05754 0.027414C6.15204 0.0452114 6.23783 0.068535 6.31491 0.0973918C6.39201 0.126249 6.46661 0.159917 6.53872 0.198391C6.61083 0.236864 6.67623 0.276066 6.73492 0.315982C6.79311 0.355422 6.84533 0.397265 6.89158 0.441509C6.93733 0.486237 7.0087 0.49778 7.10568 0.476138C7.20266 0.454495 7.3071 0.424433 7.419 0.38596C7.5309 0.347487 7.64156 0.304201 7.75097 0.256104C7.86039 0.208007 7.92703 0.177469 7.95091 0.164484C7.97428 0.151022 7.98671 0.143808 7.98821 0.142841L7.98969 0.140677L7.99715 0.13707L8.00461 0.133463L8.01207 0.129856L8.01953 0.126249L8.02102 0.124084L8.02326 0.122642L8.02551 0.121199L8.02699 0.119034L8.03445 0.11687L8.04191 0.115427L8.04043 0.126249L8.03818 0.13707L8.03445 0.147891L8.03072 0.158713L8.02699 0.165927L8.02326 0.173141L8.01953 0.183962C8.01705 0.191176 8.01456 0.200793 8.01207 0.212819C8.00959 0.224845 7.98596 0.272935 7.9412 0.357103C7.89644 0.441271 7.84049 0.526637 7.77335 0.613208C7.70621 0.699778 7.64604 0.765182 7.59283 0.809434C7.53911 0.854162 7.50355 0.885421 7.48614 0.903219C7.46874 0.921492 7.4476 0.938323 7.42273 0.953718L7.38543 0.977525L7.37797 0.981132L7.37051 0.984739L7.36902 0.986903L7.36678 0.988346L7.36454 0.989789L7.36305 0.991953L7.35559 0.99556L7.34813 0.999168L7.34664 1.00133L7.3444 1.00277L7.34216 1.00422L7.34067 1.00638L7.33918 1.00855L7.33694 1.00999L7.3347 1.01143L7.33321 1.0136H7.37051L7.57939 0.970311C7.71865 0.941454 7.85168 0.906588 7.9785 0.865705L8.17992 0.800777L8.2023 0.793563L8.21349 0.789956L8.22095 0.786348L8.22841 0.782741L8.23587 0.779134L8.24333 0.775527L8.25825 0.773363L8.27317 0.77192V0.786348L8.26944 0.787791L8.26571 0.789956L8.26423 0.79212L8.26198 0.793563L8.25974 0.795006L8.25825 0.79717L8.25677 0.799334L8.25452 0.800777L8.25228 0.80222L8.25079 0.804384L8.24931 0.806548L8.24706 0.807991L8.24333 0.815205L8.2396 0.82242L8.23736 0.823862C8.23637 0.825305 8.20479 0.866181 8.14262 0.946504C8.08046 1.0273 8.04689 1.06818 8.04191 1.06915C8.03694 1.07059 8.02997 1.0778 8.02102 1.09079C8.01257 1.10425 7.95985 1.15788 7.86287 1.25166C7.76589 1.34545 7.67091 1.42889 7.57791 1.502C7.48441 1.57558 7.43716 1.666 7.43616 1.77325C7.43467 1.88002 7.42895 2.00074 7.419 2.13541C7.40905 2.27007 7.3904 2.41555 7.36305 2.57186C7.3357 2.72817 7.29342 2.90492 7.23623 3.10211C7.17904 3.29929 7.10941 3.49168 7.02735 3.67925C6.94529 3.86681 6.8595 4.03514 6.76998 4.18424C6.68046 4.33334 6.5984 4.45958 6.5238 4.56299C6.4492 4.66639 6.37336 4.76378 6.29626 4.85516C6.21918 4.94654 6.12171 5.04947 6.00384 5.16393C5.88547 5.27791 5.82082 5.34044 5.80988 5.3515C5.79844 5.36208 5.74971 5.40152 5.66365 5.46981C5.57812 5.53858 5.48611 5.60736 5.38763 5.67614C5.28966 5.74443 5.19964 5.80143 5.11758 5.84711C5.03552 5.8928 4.93655 5.94498 4.82067 6.00366C4.70529 6.06282 4.58046 6.11765 4.44618 6.16815C4.3119 6.21865 4.17016 6.26554 4.02096 6.30882C3.87176 6.35211 3.72753 6.38578 3.58827 6.40982C3.44903 6.43387 3.29112 6.45431 3.11456 6.47114L2.84973 6.49639V6.5H2.36483V6.49639L2.30142 6.49279C2.25915 6.49038 2.22433 6.48797 2.19698 6.48557C2.16963 6.48317 2.06643 6.46994 1.88739 6.44589C1.70835 6.42185 1.56785 6.3978 1.4659 6.37375C1.36395 6.34971 1.21225 6.30401 1.01083 6.23668C0.809413 6.16935 0.637087 6.10129 0.493854 6.03252C0.351121 5.96422 0.261601 5.92094 0.225293 5.90266C0.189485 5.88487 0.149201 5.86275 0.10444 5.83629L0.0373001 5.79661L0.0358156 5.79445L0.0335701 5.79301L0.0313321 5.79156L0.0298401 5.7894L0.0223801 5.78579L0.0149201 5.78219L0.0134355 5.78002L0.01119 5.77858L0.00895204 5.77714L0.00746003 5.77497L0.00597548 5.77281L0.00373001 5.77137H0V5.75694L0.00746003 5.75838L0.0149201 5.76054L0.0484902 5.76415C0.0708703 5.76655 0.131796 5.77016 0.231261 5.77497C0.330733 5.77978 0.436412 5.77978 0.548312 5.77497C0.660213 5.77016 0.774605 5.75934 0.891474 5.74251C1.00835 5.72568 1.14636 5.69682 1.30551 5.65594C1.46466 5.61505 1.61087 5.56648 1.74416 5.51021C1.87695 5.45346 1.97144 5.41114 2.02764 5.38324C2.08334 5.35583 2.16838 5.30484 2.28277 5.2303L2.45435 5.11848L2.45584 5.11632L2.45808 5.11487L2.46033 5.11343L2.46181 5.11127L2.4633 5.1091L2.46554 5.10766L2.46779 5.10622L2.46927 5.10405L2.47673 5.10189L2.48419 5.10044L2.48568 5.09323L2.48792 5.08602L2.49017 5.08457L2.49165 5.08241L2.43197 5.0788C2.39219 5.0764 2.35364 5.07399 2.31634 5.07159C2.27904 5.06918 2.2206 5.05836 2.14103 5.03912C2.06146 5.01988 1.97567 4.99103 1.88366 4.95255C1.79165 4.91408 1.70213 4.86838 1.6151 4.81548C1.52807 4.76258 1.46515 4.71857 1.42636 4.68346C1.38807 4.64883 1.33833 4.59978 1.27716 4.53629C1.21648 4.47233 1.16376 4.40668 1.119 4.33934C1.07424 4.27202 1.03148 4.19433 0.990699 4.10633L0.928774 3.97503L0.925044 3.96421L0.921314 3.95339L0.919076 3.94617L0.917584 3.93896L0.928774 3.9404L0.939964 3.94256L1.02202 3.95339C1.07674 3.9606 1.16253 3.963 1.27939 3.9606C1.39627 3.9582 1.47709 3.95339 1.52185 3.94617C1.56661 3.93896 1.59396 3.93414 1.60391 3.93174L1.61883 3.92814L1.63748 3.92453L1.65613 3.92092L1.65762 3.91876L1.65986 3.91731L1.6621 3.91587L1.66359 3.91371L1.64867 3.9101L1.63375 3.90649L1.61883 3.90289L1.60391 3.89928L1.58899 3.89567C1.57904 3.89327 1.56164 3.88846 1.53677 3.88124C1.5119 3.87403 1.44476 3.84757 1.33535 3.80189C1.22594 3.7562 1.1389 3.71171 1.07424 3.66842C1.00943 3.62501 0.947626 3.57754 0.889235 3.5263C0.831047 3.47436 0.767145 3.40751 0.697513 3.32575C0.627888 3.24399 0.565724 3.149 0.511012 3.04079C0.456308 2.93257 0.415277 2.82917 0.387922 2.73058C0.360676 2.63256 0.3427 2.53235 0.334217 2.43119L0.320781 2.27969L0.328241 2.28113L0.335701 2.2833L0.343161 2.2869L0.350621 2.29051L0.358081 2.29412L0.365541 2.29772L0.481172 2.34822C0.558264 2.38189 0.653998 2.41075 0.768383 2.43479C0.882775 2.45884 0.951154 2.47207 0.973534 2.47447L1.0071 2.47808H1.07424L1.07276 2.47592L1.07051 2.47447L1.06828 2.47303L1.06678 2.47087L1.0653 2.4687L1.06305 2.46726L1.06082 2.46582L1.05932 2.46365L1.05186 2.46004L1.0444 2.45644L1.04292 2.45427L1.04067 2.45283L1.03844 2.45139L1.03694 2.44922L1.02948 2.44562L1.02202 2.44201L1.02054 2.43984C1.01905 2.43888 0.99766 2.42349 0.956376 2.39367C0.915592 2.36337 0.872823 2.32418 0.828063 2.27608C0.783303 2.22798 0.738543 2.17749 0.693783 2.12458C0.64894 2.07156 0.609 2.01483 0.574422 1.95505C0.539614 1.89493 0.502806 1.81846 0.464014 1.72564C0.425721 1.6333 0.396627 1.54023 0.376731 1.44645C0.356843 1.35266 0.345653 1.26008 0.343161 1.1687C0.340677 1.07732 0.343161 0.999168 0.350621 0.93424C0.358081 0.869312 0.373001 0.795965 0.395382 0.714206C0.417762 0.632448 0.450093 0.545877 0.492362 0.454495L0.555772 0.317425L0.559502 0.306604L0.563232 0.295782L0.565478 0.29434L0.566962 0.292175L0.568454 0.290011L0.570692 0.288568L0.572938 0.290011L0.574422 0.292175L0.575914 0.29434L0.578152 0.295782L0.580398 0.297225L0.581882 0.29939L0.583374 0.301554L0.585612 0.302997L0.589342 0.310211L0.593072 0.317425L0.595318 0.318868L0.596802 0.321032L0.697513 0.429245C0.764653 0.501387 0.844229 0.581948 0.936234 0.670921C1.02825 0.759894 1.07922 0.806065 1.08916 0.809434C1.09912 0.813279 1.11154 0.824338 1.12646 0.842619C1.14138 0.860417 1.19112 0.902981 1.27567 0.970311C1.36022 1.03764 1.47087 1.1158 1.60764 1.20477C1.74441 1.29375 1.89609 1.38152 2.0627 1.46809C2.22931 1.55466 2.40835 1.63281 2.59982 1.70255C2.7913 1.77229 2.92558 1.81798 3.00266 1.83962C3.07975 1.86127 3.21154 1.88892 3.39804 1.92259C3.58454 1.95625 3.72505 1.9779 3.81954 1.98751C3.91403 1.99713 3.97869 2.00266 4.0135 2.00411L4.06572 2.00555L4.06423 1.99473L4.06199 1.98391L4.04707 1.89373C4.03712 1.83361 4.03215 1.74944 4.03215 1.64123C4.03215 1.53302 4.04085 1.43322 4.05826 1.34184C4.07567 1.25046 4.10178 1.15788 4.13659 1.0641C4.1714 0.970311 4.20547 0.895038 4.23879 0.838291C4.27261 0.78202 4.31687 0.717814 4.37158 0.645671C4.42629 0.573529 4.49716 0.498985 4.58419 0.422031C4.67122 0.345077 4.77069 0.276542 4.88259 0.216426C4.99449 0.15631 5.09769 0.110615 5.19218 0.0793563C5.28668 0.0480971 5.36625 0.0276521 5.4309 0.0180355C5.49556 0.00841898 5.52788 0.00288568 5.52788 0.00144284Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Twitter</span>
</a>
<a href="#" class="share__item" data-code="tg">
<span class="share__item-icon share__item-icon--tg">
<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.39589 3.04852C1.39589 3.04852 5.05491 1.51189 6.32392 0.9708C6.8104 0.754384 8.46012 0.0617918 8.46012 0.0617918C8.46012 0.0617918 9.22155 -0.241191 9.15809 0.494655C9.13692 0.797667 8.96773 1.85815 8.79854 3.00523C8.54472 4.62846 8.26976 6.40316 8.26976 6.40316C8.26976 6.40316 8.22746 6.90097 7.86791 6.98753C7.50836 7.0741 6.91613 6.68455 6.8104 6.59795C6.72577 6.53304 5.22411 5.5591 4.6742 5.08295C4.52614 4.9531 4.35695 4.6934 4.69533 4.39039C5.45676 3.67617 6.36622 2.78882 6.91613 2.2261C7.16995 1.96638 7.42374 1.36038 6.36622 2.09622C4.86456 3.15674 3.38403 4.15231 3.38403 4.15231C3.38403 4.15231 3.04561 4.36873 2.41111 4.17394C1.77657 3.97918 1.03631 3.71945 1.03631 3.71945C1.03631 3.71945 0.528726 3.39481 1.39589 3.04852Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Telegram</span>
</a>
<a href="#" class="share__item js-share-item-copy">
<span class="share__item-icon share__item-icon--copy">
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.19922 5.40327C4.37217 5.63449 4.59283 5.8258 4.84622 5.96425C5.09962 6.10269 5.37982 6.18501 5.66783 6.20564C5.95584 6.22627 6.24492 6.18471 6.51546 6.08379C6.78599 5.98287 7.03166 5.82495 7.2358 5.62074L8.44399 4.41255C8.81079 4.03277 9.01375 3.52412 9.00917 2.99615C9.00458 2.46818 8.79281 1.96313 8.41946 1.58978C8.04611 1.21644 7.54106 1.00466 7.01309 1.00008C6.48512 0.995488 5.97647 1.19845 5.59669 1.56525L4.904 2.25392" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.81002 4.59658C5.63707 4.36536 5.41641 4.17404 5.16302 4.0356C4.90962 3.89716 4.62942 3.81483 4.34141 3.79421C4.0534 3.77358 3.76432 3.81514 3.49379 3.91605C3.22325 4.01697 2.97758 4.17489 2.77344 4.3791L1.56525 5.58729C1.19845 5.96707 0.995488 6.47572 1.00008 7.0037C1.00466 7.53167 1.21644 8.03672 1.58978 8.41006C1.96313 8.78341 2.46818 8.99518 2.99615 8.99977C3.52412 9.00436 4.03277 8.80139 4.41255 8.43459L5.10122 7.74592" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</span>
<span class="share__item-text">Скопировать ссылку</span>
</a>
</div>
</div> <!-- //share -->
</noindex>
<div class="row">
<div class="col-xl-9 col-lg-8 col-poster">
<div class="article-poster">
<picture >
<img src="https://248006.selcdn.ru/main/iblock/08b/08b2437458c8713bdbe46b7add2c4237/67bbd8a8568c611f46f0abc7bbb49d21.png" itemprop='image' class='hidden-xs' />
</picture> <picture >
<img src="https://248006.selcdn.ru/main/iblock/08b/08b2437458c8713bdbe46b7add2c4237/67bbd8a8568c611f46f0abc7bbb49d21.png" itemprop='image' class='visible-xs' />
</picture> </div>
<noindex>
<p class="article-poster-text" data-nosnippet>
Иллюстрация: Оля Ежак для Skillbox Media </p>
</noindex>
</div>
<div class="col-xl-3 col-lg-4 col-author">
<div class="article-author">
<div class="article-author__image">
<a href="/media/authors/code-skillbox-media/">
<img src="https://248006.selcdn.ru/main/iblock/168/168916384f65586cc4e6b7cfbbb69613/0dd44147b96863097b5219fdd6fd0e08.png" alt="Редакция «Код» Skillbox Media">
</a>
</div>
<div class="article-author__info">
<div class="article-author__name">
Редакция «Код» Skillbox Media </div>
<div class="article-author__description">
Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках. </div>
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row flex-row-rev">
<div class="col-xl-3 col-lg-4 col-author">
<div class="js-article-banner" data-article-banner-mobile data-type="side_mounted" data-article-banner-sticky-start>
<!--AdFox START-->
<!--yandex_skillbox.media-->
<!--Площадка: Skillbox / Сквозной для застройщика Легенда / Боковой баннер сквозной для застройщика Легенда-->
<!--Категория: <не задана>-->
<!--Тип баннера: Media banner-->
<div id="adfox_176131540100027244"></div>
<script>
window.yaContextCb.push(()=>{
Ya.adfoxCode.create({
ownerId: 11649869,
containerId: 'adfox_176131540100027244',
params: {
p1: 'dkugb',
p2: 'p'
}
})
})
</script> </div>
<div class="js-article-banner" data-article-banner-mobile data-type="vertical" data-article-banner-sticky-end></div>
</div>
<div class="col-xl-9 col-lg-8 col-poster">
<div class="container container--setka">
<div class="js-article-banner" data-type="top"></div>
<div class="article-detail-text__setka" data-detail-text>
<div class="stk-post stk-layout_12col_18068 stk-theme_26309" data-stk="{"images":[{"id":83849,"alt":"","caption":""},{"id":83845,"alt":"","caption":""},{"id":83848,"alt":"","caption":""},{"id":83846,"alt":"","caption":""},{"id":83847,"alt":"","caption":""},{"id":83850,"alt":"","caption":""},{"id":83844,"alt":"","caption":""},{"id":83843,"alt":"","caption":""}]}" data-ui-id="post" data-ce-tag="post" data-reset-type="class" data-layout-type="auto" data-editor-version="3.2.8-rc1"><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><p class="stk-reset" data-ce-tag="paragraph">Это статья для начинающих фронтенд-разработчиков, которые изучают JavaScript и перешли к методам массивов. Рассмотрим основные из них.</p><p class="stk-reset" data-ce-tag="paragraph">Материал разбит на три части. В первой части мы настроим рабочее окружение, чтобы вы могли повторять примеры и экспериментировать с массивами. Если у вас уже всё настроено — пропускайте этот раздел.</p><p class="stk-reset" data-ce-tag="paragraph">Во второй части мы по группам разберём основные методы работы с массивами. Будем объяснять простым языком, начиная с лёгких методов.</p><p class="stk-reset" data-ce-tag="paragraph">В третьей части статьи будет подборка задач на закрепление темы. Попробуйте их решить самостоятельно, а затем сверьте результаты.</p><p class="stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Содержание</strong></p><ul class="stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-1">Настройка рабочего окружения</a> </li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-2">Методы для добавления и извлечения элементов</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-stk-css="stktjLx4" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-3" data-gtm-vis-has-fired10171822_255="1">unshift()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-4" data-gtm-vis-has-fired10171822_255="1">push()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-5" data-gtm-vis-has-fired10171822_255="1">shift()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-6" data-gtm-vis-has-fired10171822_255="1">pop()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-7" data-gtm-vis-has-fired10171822_255="1">splice()</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-8">Методы для формирования новых массивов на основе существующих</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-stk-css="stkOzzt2" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-9" data-gtm-vis-has-fired10171822_255="1">slice()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-10" data-gtm-vis-has-fired10171822_255="1">concat()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-11" data-gtm-vis-has-fired10171822_255="1">filter()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-12" data-gtm-vis-has-fired10171822_255="1">map()</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-13">Методы для проверок и итераций по массиву</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-stk-css="stkJ7weL" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-14" data-gtm-vis-has-fired10171822_255="1">forEach()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-15" data-gtm-vis-has-fired10171822_255="1">every()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-16" data-gtm-vis-has-fired10171822_255="1">some()</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-17">Методы для поиска элементов и индексов в массиве</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-stk-css="stkUsyFg" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-18" data-gtm-vis-has-fired10171822_255="1">indexOf()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-19" data-gtm-vis-has-fired10171822_255="1">lastIndexOf()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-20" data-gtm-vis-has-fired10171822_255="1">includes()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-21" data-gtm-vis-has-fired10171822_255="1">find()</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-22">Методы для преобразования массивов</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-stk-css="stksb2ld" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-23" data-gtm-vis-has-fired10171822_255="1">sort()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-24" data-gtm-vis-has-fired10171822_255="1">reverse()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-25" data-gtm-vis-has-fired10171822_255="1">reduce()</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-26">Практика по массивам</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-stk-css="stkFyLTa" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-27">Задача на добавление и извлечение элементов</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-28">Задача на создание массивов из текущих</a> </li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-29" data-gtm-vis-has-fired10171822_255="1">Задача на метод forEach()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-30" data-gtm-vis-has-fired10171822_255="1">Задача на методы every() и includes()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-31" data-gtm-vis-has-fired10171822_255="1">Задача на метод sort()</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-32" data-gtm-vis-has-fired10171822_255="1">Задача на метод reduce()</a></li></ul><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-33">Что дальше</a></li></ul></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-1"><strong class="stk-reset">Настройка рабочего окружения</strong></h2><p class="stk-reset" data-ce-tag="paragraph"><span class="stk-reset" data-stk-footnote-link="fnRHJ9j">Интерпретатор JavaScript</span> встроен в любой браузер, поэтому для работы с ним не нужно ничего дополнительно устанавливать. Достаточно открыть браузер, перейти в консоль разработчика и уже можно начинать писать код.</p><p class="stk-reset" data-ce-tag="paragraph">Если у вас установлен Google Chrome, то сперва откройте какую-то страницу. После кликните правой кнопкой мыши на этой странице и выберите в контекстном меню пункт <u class="stk-reset">Просмотреть код</u>. Перед вами появится окно с инструментами разработчика, в котором нужно выбрать вкладку <u class="stk-reset">Консоль</u>.</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/22330418062024_accf102caaa970ce65d217b9ae9a8e9a57caa67c.jpg" data-image-id="83843" data-image-name="1.jpg" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description">Вкладка «Консоль» в инструментах разработчика Google Chrome. Введите любую строку или число и убедитесь, что интерпретатор JavaScript работает<br><em class="stk-reset">Скриншот: Google Chrome / Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Вы можете оставаться в консоли разработчика, но рекомендуем выделить несколько минут на настройку и запустить JavaScript в редакторе <a href="https://skillbox.ru/media/code/visual-studio-code-ustanovka-nastroyka-rusifikatsiya-i-spisok-goryachikh-klavish/" target="_blank" class="stk-reset">VS Code</a>.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Для начала откройте терминал на вашем компьютере и выполните команду:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">node</span> <span class="hljs-title" style="color: rgb(255, 255, 182);">--version</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Если появилось сообщение об ошибке, значит, на вашем компьютере не установлена <a href="https://skillbox.ru/media/code/chem_khorosh_node_js/" target="_blank" class="stk-reset">Node.js</a> — платформа для выполнения JS-кода вне браузера:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/22330418062024_08fda0244b5397e030ee401fd2bea5b24f78a72b.jpg" data-image-id="83844" data-image-name="2.jpg" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description">Пример сообщения об ошибке, если на компьютере не установлена платформа Node.js<br><em class="stk-reset">Скриншот: Windows PowerShell / Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Node.js можно скачать с <a href="https://nodejs.org/en" target="_blank" class="stk-reset">официального сайта</a> и установить как обычную программу. После установки перезапустите терминал и убедитесь, что вместо сообщения об ошибке на экране высвечивается номер версии.</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/22330518062024_6896a8696b8038f4fc8989ab005e4fccc3b90047.jpg" data-image-id="83850" data-image-name="3.jpg" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description">Главная страница официального сайта Node.js<br><em class="stk-reset">Скриншот: <a class="stk-reset" href="https://nodejs.org" target="_blank">Node.js</a> / Skillbox Media</em></figcaption></figure><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/22330518062024_c7c2d6650fe8dd3125b1541cb39af56649bd56fa.jpg" data-image-id="83847" data-image-name="4.jpg" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description">Номер версии платформы Node.js после её установки на компьютер<br><em class="stk-reset">Скриншот: Windows PowerShell / Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Закрывайте терминал, он нам больше не понадобится. Дальше мы будем работать в редакторе VS Code — <a href="https://code.visualstudio.com/" target="_blank" class="stk-reset">скачайте</a> и установите его, если нужно.</p><p class="stk-reset" data-ce-tag="paragraph">В VS Code перейдите в маркетплейс расширений и установите Code Runner — у вас появится кнопка запуска кода в правом верхнем углу окна редактора.</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/22330418062024_0ed1686442ac630326a48ddcef43684fa02b904b.jpg" data-image-id="83846" data-image-name="5.jpg" width="1540" height="958" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description">Расширение Code Runner после установки из маркетплейса VS Code <br><em class="stk-reset">Скриншот: <a class="stk-reset" href="https://code.visualstudio.com/" target="_blank">Visual Studio Code</a> / Skillbox Media</em></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Почти готово. Создайте в редакторе папку, поместите в неё файл с любым именем и расширением <u class="stk-reset">.js</u>. Напишите проверочную команду, запустите Code Runner и убедитесь, что JS-код выполнился в редакторе:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">console<span class="hljs-selector-class">.log</span>(<span class="hljs-string" style="color: rgb(168, 255, 96);">'Привет, массив!'</span>);</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/22330518062024_b30ff17d14b759c017197570526ff51b33cc83c5.jpg" data-image-id="83848" data-image-name="6.jpg" width="1540" height="958" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description">Пример выполнения JS-кода в редакторе VS Code <br><em class="stk-reset">Скриншот: <a class="stk-reset" href="https://code.visualstudio.com/" target="_blank">Visual Studio Code</a> / Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Теперь у вас есть всё необходимое для изучения методов массивов. Последняя рекомендация и начинаем: в VS Code под каждую группу методов рекомендуем создавать отдельный файл. Так будет удобно.</p><div class="stk-grid__layout_reverse stk-grid valign-middle" data-stk-css="stkYVQo9" data-ce-tag="grid"><div data-col-width="4" class="stk-grid-col stk-grid-col_last valign-middle" data-ce-tag="grid-col" data-stk-css="" data-stk-css-m=""><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/22330418062024_116fabfed9db662d1ca4922820b351a40369b79d.png" data-image-id="83845" data-image-name="rm1.png" class="stk-image stk-reset" width="372" height="200" loading="lazy"/></div></figure></div><div data-col-width="8" class="stk-grid-col valign-middle" data-ce-tag="grid-col"><p class="stk-reset stk-theme_26309__mb_05 stk-theme_26309__style_font_style-1629726727970" data-ce-tag="paragraph">Читайте также:</p><p class="stk-theme_26309__mb_15 stk-reset stk-theme_26309__style_font_style-1629786048064 stk-theme_26309__style_font_style-1629290372003 stk-theme_26309__color_26309_custom_color_1 article_incut" data-ce-tag="paragraph"><a href="https://skillbox.ru/media/code/visual-studio-code-ustanovka-nastroyka-rusifikatsiya-i-spisok-goryachikh-klavish/" target="_blank" class="stk-reset">Visual Studio Code: установка, настройка, русификация и список горячих клавиш. Всё, что нужно знать о самом популярном редакторе кода от Microsoft</a></p></div></div></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-2"><strong class="stk-reset">Методы для добавления и извлечения элементов</strong></h2><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Для начала объявим переменную и добавим в неё массив с фруктами:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fruits = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Теперь внесём во фруктовый массив первую запись.</p><div class="stk-grid__layout_reverse stk-grid valign-middle" data-stk-css="stkvTbaG" data-ce-tag="grid"><div data-col-width="4" class="stk-grid-col stk-grid-col_last valign-middle" data-ce-tag="grid-col" data-stk-css="" data-stk-css-m=""><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/22330518062024_46dcb59ca8a4e3d30a63e20d6c27651d3a86b8cd.png" data-image-id="83849" data-image-name="rm2.png" class="stk-image stk-reset" width="372" height="200" loading="lazy"/></div></figure></div><div data-col-width="8" class="stk-grid-col valign-middle" data-ce-tag="grid-col"><p class="stk-reset stk-theme_26309__mb_05 stk-theme_26309__style_font_style-1629726727970" data-ce-tag="paragraph">Читайте также:</p><p class="stk-theme_26309__mb_15 stk-reset stk-theme_26309__style_font_style-1629786048064 stk-theme_26309__style_font_style-1629290372003 stk-theme_26309__color_26309_custom_color_1 article_incut" data-ce-tag="paragraph"><a href="https://skillbox.ru/media/code/chem_razlichayutsya_var_let_i_const_v_javascript/" target="_blank" class="stk-reset">Чем различаются var, let и const в JavaScript</a></p></div></div><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-3" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">unshift(): добавляет элементы в начало массива</strong><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1"> </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Обратимся к переменной с нашим массивом, через точечную запись получим доступ к методу <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">unshift()</u> и перечислим нужные элементы:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.unshift(element1, <span class="hljs-attr">...</span>, elementN)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Новые элементы попадут в начало массива, и длина массива изменится:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fruits = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
fruits.unshift(<span class="hljs-string" style="color: rgb(168, 255, 96);">'Список покупок:'</span>);
console.<span class="hljs-built_in">log</span>(fruits)<span>;
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// '[ Список покупок:', '?', '?', '?', '?', <'?' ]</span></span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-4" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">push(): добавляет элементы в конец массива</strong><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1"> </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Воспользуемся методом <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">push()</u> и добавим элементы в конец массива:</p><figure class="stk-theme_26309__mb_05 stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span><span class="hljs-built_in">push</span>(element1, ..., elementN)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fruits = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'Список покупок:'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
fruits.push(<span class="hljs-string" style="color: rgb(168, 255, 96);">'Итого: 3000 рублей'</span>);
console.<span class="hljs-built_in">log</span>(fruits);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// ['Список покупок:', '?', '?', '?', '?', '?', 'Итого: 3000 рублей']</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-5" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">shift(): извлекает элементы из начала массива </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Мы передумали добавлять запись в начало массива, но не хотим её потерять. В таких случаях помогает метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">shift()</u>: он извлекает первый элемент и, если нужно, позволяет его поместить в новую переменную:</p><figure class="stk-theme_26309__mb_05 stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span><span class="hljs-built_in">.shift()</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fruits = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'Список покупок:'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'Итого: 3000 рублей'</span>]<span class="hljs-comment" style="color: rgb(124, 124, 124);">;</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> firstElement = fruits.shift()<span class="hljs-comment" style="color: rgb(124, 124, 124);">;</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Массив без первого элемента</span>
console.<span class="hljs-built_in">log</span>(fruits)<span class="hljs-comment" style="color: rgb(124, 124, 124);">; </span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// [ <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'Итого: 3000 рублей'</span> ]</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Первый элемент, сохранённый в отдельной переменной</span>
console.<span class="hljs-built_in">log</span>(firstElement)<span class="hljs-comment" style="color: rgb(124, 124, 124);">; // Список покупок:</span>
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-6" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">pop(): извлекает элементы из конца массива </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">С помощью метода <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">pop()</u> удалим последний элемент из конца массива, но только теперь не будем сохранять запись в отдельную переменную:</p><figure class="stk-theme_26309__mb_05 stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.<span class="hljs-built_in">pop</span>()</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fruits = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'Итого: 3000 рублей'</span>];
fruits.pop();
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Массив после извлечения последнего элемента</span>
console.log(fruits); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// [ '?', '?', '?', '?', '?' ]</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-7" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">splice(): добавляет, удаляет или заменяет элементы из любой части массива </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">splice()</u> изменяет содержимое массива и может выглядеть запутанно:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.splice(<span class="hljs-keyword" style="color: rgb(150, 203, 254);">start</span>, [deleteCount, item1, item2, ...])</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Однако если разбираться в синтаксисе по частям, то ничего сложного:</p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">start</u> — это начальный индекс элемента массива, с которого мы хотим начать изменения. Данный параметр может принимать отрицательные индексы, которые указывают на позицию элемента с конца массива.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">deleteCount</u> — это количество элементов, которые мы хотим удалить из массива. Если указать 0, то все элементы останутся. А если не указать никакого значения, то метод удалит все элементы начиная со стартового индекса — того, что мы записали в параметре <u class="stk-reset">start</u>.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">item1, item2, …</u> — это список новых элементов, которые нужно добавить после стартового индекса. Эти элементы указывать необязательно.</li></ul><p class="stk-reset" data-ce-tag="paragraph">Теперь посмотрим на примерах варианты использования метода <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">splice()</u>.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">В первую очередь удалим несколько элементов из середины массива:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fruits = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Удаляем два элемента начиная с индекса 1</span>
fruits.splice(<span class="hljs-number" style="color: rgb(255, 115, 253);">1</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">2</span>);
console.log(fruits); <span class="hljs-regexp" style="color: rgb(233, 192, 98);"><span class="hljs-comment" style="color: rgb(124, 124, 124);">// [ '?', '?', '?' ]</span></span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Заполним массив новыми элементами вместо удалённых:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fruits = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Добавляем два новых элемента начиная с индекса 1</span>
fruits.splice(<span class="hljs-number" style="color: rgb(255, 115, 253);">1</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">0</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>);
console.log(fruits); <span class="hljs-regexp" style="color: rgb(233, 192, 98);"><span class="hljs-comment" style="color: rgb(124, 124, 124);">// [ '?', '?', '?', '?', '?' ]</span></span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Заменим несколько старых элементов на новые:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fruits = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Меняем два элемента начиная с индекса 3</span>
fruits.splice(<span class="hljs-number" style="color: rgb(255, 115, 253);">3</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">2</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>);
console.log(fruits); <span class="hljs-regexp" style="color: rgb(233, 192, 98);"><span class="hljs-comment" style="color: rgb(124, 124, 124);">// [ '?', '?', '?', '?', '?' ]</span></span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Оставим в массиве только два фрукта, а остальные удалим:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fruits = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Удаляем все элементы начиная с индекса 2</span>
fruits.<span class="hljs-built_in">splice</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">2</span>);
console.<span class="hljs-built_in">log</span>(fruits); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// [ '?', '?' ]</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-8"><strong class="stk-reset">Методы для формирования новых массивов на основе существующих</strong></h2><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Все методы этой группы возвращают новый массив, сохраняя неизменными исходные данные. Создадим исходный массив, на котором попрактикуемся:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> animals = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-9" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">slice(): копирует элементы одного массива </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">slice()</u> позволяет скопировать часть элементов в новый массив:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.slice([<span class="hljs-keyword" style="color: rgb(150, 203, 254);">start</span>, <span class="hljs-keyword" style="color: rgb(150, 203, 254);">end</span>]);</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Разбираемся в синтаксисе:</p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">start</u> — это стартовый индекс, с которого начинается копирование элементов. Если не указать, то всё начнётся с нулевого индекса.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">end</u> — это конечный индекс, до которого будут копироваться элементы. Если не указать, то скопируются все элементы от стартового индекса до конца выбранного массива.</li></ul><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Стартовый и конечный индексы могут принимать отрицательные аргументы. Это будет означать, что отсчёт элементов нужно проводить с конца массива.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> animals = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Формируем новый массив из диких животных</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> wildAnimals = animals.slice(<span class="hljs-number" style="color: rgb(255, 115, 253);">2</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">4</span>);
<span class="hljs-built_in">console</span>.log(wildAnimals); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// ['?', '?']</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-10" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">concat(): копирует элементы нескольких массивов </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">concat()</u> объединяет несколько массивов в один и при необходимости позволяет добавить к ним любые дополнительные значения:</p><figure class="stk-theme_26309__mb_05 stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.concat (arg1, arg2, ..., argN)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> animals = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> birds = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>]; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Массив с птицами</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fish = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>]; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Массив с рыбами</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Новый объединённый массив с двумя записями</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> combinedArray = animals.concat(<span class="hljs-string" style="color: rgb(168, 255, 96);">'добавим птиц =>'</span>, birds, <span class="hljs-string" style="color: rgb(168, 255, 96);">'не забудем про рыб =>'</span>, fish);
console.<span class="hljs-built_in">log</span>(combinedArray);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// ['?', '?', '?', '?', '?', добавим птиц =>''?', '?', '?', ;'не забудем про рыб =>''?', '?''?']</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-11" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">filter(): возвращает массив по условию</strong><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1"> </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">filter()</u> перебирает массив и выбирает из него элементы, которые проходят проверку по заданному условию. Это условие записывается в <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Glossary/Callback_function" target="_blank" data-gtm-vis-has-fired10171822_255="1">функции обратного вызова (колбэк-функции)</a>. Если ни один элемент не будет соответствовать условию, то метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">filter()</u> создаст новый пустой массив:</p><figure class="stk-theme_26309__mb_05 stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.<span class="hljs-built_in">filter</span>(callback)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> animals = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Выбираем из животных только хищников</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> predators = animals.<span class="hljs-built_in">filter</span>(animal => animal === <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span> || animal === <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>);
console.<span class="hljs-built_in">log</span>(predators); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// ['?', '?']</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">А вот пример формирования пустого массива:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> animals = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Выбираем из животных только слонов</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> elephants = animals.<span class="hljs-built_in">filter</span>(animal => animal === <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Слонов в исходном массиве не оказалось</span>
console.<span class="hljs-built_in">log</span>(elephants); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// []</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-12" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">map(): возвращает массив на основе исходного </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">map()</u> обращается к каждому элементу исходного массива, меняет их через <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Glossary/Callback_function" target="_blank" data-gtm-vis-has-fired10171822_255="1">функцию обратного вызова</a> и записывает результат в новый массив:</p><figure class="stk-theme_26309__mb_05 stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.map(callback)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> animals = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Вакцинируем наших животных</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> vaccinatedAnimals = animals.map(animal => `${animal}?`);
console.<span class="hljs-built_in">log</span>(vaccinatedAnimals);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// ['??', '??', '??', '??', '??']</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-13"><strong class="stk-reset">Методы для проверок и итераций по массиву</strong></h2><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Методы этой группы не создают и не изменяют исходный массив. Они лишь выполняют определённые действия с переданным массивом и возвращают запрашиваемый результат. Попрактикуемся на транспортных средствах:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> vehicles = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?️'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'✈️'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-14" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">forEach(): перебирает массив и ничего не возвращает </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">forEach()</u> перебирает каждый элемент массива с помощью <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Glossary/Callback_function" target="_blank" data-gtm-vis-has-fired10171822_255="1">функции обратного вызова</a>. Однако в отличие от <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">map()</u>, метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">forEach()</u> не возвращает новый массив и не изменяет текущий. То есть вы можете что-то сделать с каждым элементом, посмотреть результат и не записывать его в новый массив. Это удобный аналог <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/for" target="_blank" data-gtm-vis-has-fired10171822_255="1">цикла <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">for</u> в JavaScript</a> для работы с массивами.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.forEach(callback)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Допустим, мы хотим посмотреть список транспортных средств в массиве. Мы пока ничего не планируем делать, и вот для этого подходит <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">forEach()</u>:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> vehicles = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"✈️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
vehicles.<span class="hljs-keyword" style="color: rgb(150, 203, 254);">forEach</span>((vehicle) => console.log(vehicle));
<span class="hljs-comment" style="color: rgb(124, 124, 124);">/*
* ?
* ?
* ?
* ?
* ?
* ?️
* ?
* ?
* ✈️
* ?
*/</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Если мы перепишем код с помощью <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/for" target="_blank" data-gtm-vis-has-fired10171822_255="1">цикла <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">for</u></a>, то получится более громоздко. Ещё различие: <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">forEach()</u> всегда доходит до конца и перебираем все элементы массива. А вот цикл <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">for</u> можно остановить <a class="stk-reset" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/break" target="_blank" data-gtm-vis-has-fired10171822_255="1">оператором <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">break</u></a>. Поэтому в массивах хорошей практикой считается использовать <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">forEach()</u> вместо <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">for</u>.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> vehicles = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"✈️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">for</span> (<span class="hljs-built_in">let</span> i = <span class="hljs-number" style="color: rgb(255, 115, 253);">0</span>; i < vehicles.<span class="hljs-built_in">length</span>; i++) {
console.<span class="hljs-built_in">log</span>(vehicles[i]);
}
<span class="hljs-comment" style="color: rgb(124, 124, 124);">/*
* ?
* ?
* ?
* ?
* ?
* ?️
* ?
* ?
* ✈️
* ?
*/</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-15" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">every(): проверяет, соответствуют ли все элементы массива заданному условию</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">every()</u> проходится <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Glossary/Callback_function" target="_blank" data-gtm-vis-has-fired10171822_255="1">функцией обратного</a> вызова по всему массиву и возвращает <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Boolean" target="_blank" data-gtm-vis-has-fired10171822_255="1">булево значение</a> <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">true</u>, если каждый элемент удовлетворяет условию. Если есть хотя бы одно несовпадение — метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">every()</u> вернёт <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">false</u>:</p><figure class="stk-theme_26309__mb_05 stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.every(callback)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-comment" style="color: rgb(124, 124, 124);">// Общий список транспортных средств</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> vehicles = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"✈️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Создаём функцию обратного вызова для метода every. Она проверяет, является ли переданное транспортное средство (vehicle) наземным</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> isLandTransport = (vehicle) => {
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Список наземных транспортных средств</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> landTransports = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Цикл перебора всех наземных транспортных средств в массиве landTransports</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">for</span> (<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> i = <span class="hljs-number" style="color: rgb(255, 115, 253);">0</span>; i < landTransports.length; i++) {
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Если текущее транспортное средство (vehicle) совпадает с элементом из landTransports, то возвращается значение true</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">if</span> (vehicle === landTransports[i]) {
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">return</span> <span class="hljs-literal" style="color: rgb(198, 197, 254);">true</span>;
}
}
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Если ни одно из наземных транспортных средств не совпадает с vehicle, то возвращается значение false</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">return</span> <span class="hljs-literal" style="color: rgb(198, 197, 254);">false</span>;
};
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Используем метод every для проверки всех элементов массива vehicles</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> allLandTransport = vehicles.every(isLandTransport);
<span class="hljs-built_in">console</span>.log(allLandTransport); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Результат false, потому что в массиве есть ✈️ самолёт и ? корабль</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-16" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">some(): проверяет, выполняется ли условие хотя бы для одного элемента массива</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">some()</u> после перебора массива возвращает <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">true</u>, если хотя бы один элемент соответствует условию. Если совпадений нет — метод вернёт <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">false</u>. Ещё важно знать, что метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">some()</u> останавливается на первом совпадении и не перебирает все элементы — ищет хотя бы один подходящий элемент:</p><figure class="stk-theme_26309__mb_05 stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.some(callback)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> vehicles = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"✈️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Создаём функцию обратного вызова для метода some(). Она проверяет, является ли переданное транспортное средство (vehicle) воздушным</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> isAirTransport = (vehicle) => {
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> airTransports = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"✈️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">return</span> airTransports.some((transport) => transport === vehicle);
};
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Используем метод some() для проверки наличия хотя бы одного воздушного транспортного средства в массиве vehicles</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> hasAirTransport = vehicles.some(isAirTransport);
console.log(hasAirTransport); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// true, так как в массиве есть ✈️ самолёт</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-17"><strong class="stk-reset">Методы для поиска элементов и индексов в массиве</strong></h2><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Эта группа методов позволяет найти конкретный элемент, его индекс или убедиться, что он есть в массиве. Потренируемся искать спортинвентарь:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> sportsEquipment = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"⚽"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-18" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">indexOf(): возвращает индекс искомого элемента </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset">indexOf</u> принимает два аргумента: искомый элемент и индекс, с которого должен начинаться поиск. Если в массиве несколько одинаковых элементов, то <u class="stk-reset">indexOf</u> вернёт только первый индекс. В случае если нужного элемента не будет, метод вернёт отрицательный индекс со значением <u class="stk-reset">-1</u>:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-selector-tag" style="color: rgb(150, 203, 254);">array</span><span class="hljs-selector-class">.indexOf</span>(<span class="hljs-selector-tag" style="color: rgb(150, 203, 254);">searchElement</span>, <span class="hljs-selector-attr" style="color: rgb(168, 255, 96);">[fromIndex]</span>)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Объяснение синтаксиса:</p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">searchElement</u> — элемент, который мы хотим найти в массиве.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">fromIndex</u> — номер индекса, с которого должен стартовать поиск. Если этот параметр не указать, то поиск начнётся с начала массива.</li></ul><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Найдём индекс первого баскетбольного мяча:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> sportsEquipment = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"⚽"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Второй аргумент не указываем, чтобы поиск начинался с начала </span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> basketballIndex = sportsEquipment.indexOf(<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>);
console.<span class="hljs-built_in">log</span>(basketballIndex); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 1</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Поищем индекс второго баскетбольного мяча:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> sportsEquipment = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"⚽"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Указываем второй аргумент, чтобы поиск начинался с третьего индекса</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> nextBasketballIndex = sportsEquipment.indexOf(<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, 3);
console.<span class="hljs-built_in">log</span>(nextBasketballIndex); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 4</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Теперь попробуем отыскать элемент, которого нет в массиве:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> sportsEquipment = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"⚽"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> tennisBallIndex = sportsEquipment.indexOf(<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>);
console.<span class="hljs-built_in">log</span>(tennisBallIndex); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// -1</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-19" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">lastIndexOf(): возвращает индекс искомого элемента, но начинает поиск с конца массива </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">lastIndexOf()</u> работает практически так же, как и метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">indexOf()</u>. Разница только в том, что <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">lastIndexOf()</u> начинает поиск элемента с конца и возвращает индекс последнего вхождения указанного элемента в массиве:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-selector-tag" style="color: rgb(150, 203, 254);">array</span><span class="hljs-selector-class">.lastIndexOf</span>(<span class="hljs-selector-tag" style="color: rgb(150, 203, 254);">searchElement</span>, <span class="hljs-selector-attr" style="color: rgb(168, 255, 96);">[fromIndex]</span>)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Разыщем индекс последнего баскетбольного мяча в массиве:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> sportsEquipment = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"⚽"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> lastBasketballIndex = sportsEquipment.lastIndexOf(<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>);
console.<span class="hljs-built_in">log</span>(lastBasketballIndex); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 8</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Добавим к методу <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">lastIndexOf()</u> второй аргумент и посмотрим результат:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> sportsEquipment = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"⚽"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Найдём индекс последнего вхождения теннисной ракетки (?), начиная с индекса 2</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> lastTennisRacketIndex = sportsEquipment.lastIndexOf(<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">2</span>);
console.<span class="hljs-built_in">log</span>(lastTennisRacketIndex); // -<span class="hljs-number" style="color: rgb(255, 115, 253);">1</span>, до индекса <span class="hljs-number" style="color: rgb(255, 115, 253);">2</span> <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span> нет
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Метод проверил нулевой, первый и второй индекс: "⚽", "?", "?"</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Немного изменим второй аргумент, чтобы элемент попал в выборку:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> sportsEquipment = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"⚽"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Найдём индекс последнего вхождения теннисной ракетки (?) начиная с индекса 3</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> lastTennisRacketIndex = sportsEquipment.lastIndexOf(<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, 3);
console.<span class="hljs-built_in">log</span>(lastTennisRacketIndex); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 3</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-20" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">includes(): проверяет наличие элемента в массиве </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">includes()</u> возвращает <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Boolean" target="_blank" data-gtm-vis-has-fired10171822_255="1">булево значение</a> <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">true</u> или <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">false</u>. Результат зависит от того, присутствует ли нужный элемент в массиве или же нет. Опционально можно указать индекс, с которого метод начнём проверку:</p><figure class="stk-theme_26309__mb_05 stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-selector-tag" style="color: rgb(150, 203, 254);">array</span><span class="hljs-selector-class">.includes</span>(<span class="hljs-selector-tag" style="color: rgb(150, 203, 254);">searchElement</span>, <span class="hljs-selector-attr" style="color: rgb(168, 255, 96);">[fromIndex]</span>)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> sportsEquipment = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"⚽"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Проверяем, есть ли в массиве баскетбольный мяч (?)</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> hasBasketball = sportsEquipment.includes(<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>);
console.<span class="hljs-built_in">log</span>(hasBasketball); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// true</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Проверяем, есть ли в массиве теннисный мяч (?)</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> hasTennisBall = sportsEquipment.includes(<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>);
console.<span class="hljs-built_in">log</span>(hasTennisBall); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// false</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Проверяем, есть ли в массиве баскетбольный мяч (?), начиная с 4-го индекса</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> hasBasketballFromIndex = sportsEquipment.includes(<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, 4);
console.<span class="hljs-built_in">log</span>(hasBasketballFromIndex); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// true</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-21" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">find(): возвращает первый элемент в массиве, который удовлетворяет условию поиска </strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">find()</u> принимает в качестве аргумента <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Glossary/Callback_function" target="_blank" data-gtm-vis-has-fired10171822_255="1">функцию обратного вызова</a>, которая определяет условия для поиска элемента. Если нужный элемент будет найден, то <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">find()</u> его вернёт. Однако если ни один элемент не будет соответствовать условию, то вернётся <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/undefined" target="_blank" data-gtm-vis-has-fired10171822_255="1"><u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">undefined</u></a> (значение неопределённо):</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.<span class="hljs-built_in">find</span>(callback)</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Поищем волейбольный мяч:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> sportsEquipment = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"⚽"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> firstVolleyball = sportsEquipment.find((equipment) => equipment === <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>);
console.log(firstVolleyball); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// ?</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Усложним условие и поищем что-то кроме мяча:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> sportsEquipment = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"⚽"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> firstNonBall = sportsEquipment.find((equipment) => ![<span class="hljs-string" style="color: rgb(168, 255, 96);">"⚽"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>].includes(equipment));
console.log(firstNonBall); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// ?</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-22"><strong class="stk-reset">Методы для преобразования массивов</strong></h2><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Эти методы позволяют сортировать, разворачивать и получать единое значение на основе массива. Поэкспериментируем с вредным фастфудом:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> foods = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__mb_05 stk-theme_26309__style_medium_header stk-reset" id="stk-23" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">sort(): возвращает отсортированный массив</strong><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1"> </strong></h3><p class="stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">sort()</u> берёт исходный массив, сортирует его определённым образом и возвращает. То есть после применения метода исходный массив изменится.</p><p class="stk-reset" data-ce-tag="paragraph">По умолчанию элементы сортируются в лексикографическом порядке — как строки. Если в массиве будут числа, то метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">sort()</u> преобразует их в строки и после отсортирует по кодам символов <a class="stk-reset" href="https://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4" target="_blank" data-gtm-vis-has-fired10171822_255="1">Unicode</a>. Это произойдёт и с эмодзи.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">В нашем массиве есть бургер и пицца:</p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">U+1F354 — юникод бургера ?</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">U+1F355 — юникод пиццы ?</li></ul><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">У символа бургера меньший юникод, поэтому в лексикографическом порядке сортировки он будет перед пиццей. Так же будет и с остальными эмодзи:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> foods = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Сортируем массив foods в лексикографическом порядке</span>
foods.sort();
console.log(foods); // [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>]
<span class="hljs-comment" style="color: rgb(124, 124, 124);">/**
? — Хот-дог — U+1F32D
? — Тако — U+1F32E
? — Гамбургер — U+1F354
? — Кусок пиццы — U+1F355
? — Картофель фри — U+1F35F
? — Спагетти — U+1F35D
? — Суши — U+1F363
? — Кусок торта — U+1F370
? — Зелёный салат — U+1F957
? — Сэндвич — U+1F96A
*/</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">sort()</u> позволяет сортировать массив по любому критерию, который вам нужен. Например, по длине строки: от меньшей к большей. Для этого мы должны создать <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Glossary/Callback_function" target="_blank" data-gtm-vis-has-fired10171822_255="1">функцию обратного вызова</a> для сравнения длины строк. Переведём эмодзи в текст и посмотрим, как изменится порядок сортировки:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const </span>foods = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"Пицца"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"Гамбургер"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"Хот-дог"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"Картофель фри"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"Салат"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"Суши"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"Спагетти"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"Тако"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"Сэндвич"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"Торт"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Создаём функцию для получения длины строки</span>
const getStringLength = (str) => {
return str.length;
};
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Сортируем массив по длине строк</span>
foods.sort((a, b) => {
return getStringLength(a) - getStringLength(b);
});
console.log(foods);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">/**
[
<span class="hljs-string" style="color: rgb(124, 124, 124);">'Суши'</span>,
<span class="hljs-string" style="color: rgb(124, 124, 124);">'Тако'</span>,
<span class="hljs-string" style="color: rgb(124, 124, 124);">'Торт'</span>,
<span class="hljs-string" style="color: rgb(124, 124, 124);">'Пицца'</span>,
<span class="hljs-string" style="color: rgb(124, 124, 124);">'Салат'</span>,
<span class="hljs-string" style="color: rgb(124, 124, 124);">'Хот-дог'</span>,
<span class="hljs-string" style="color: rgb(124, 124, 124);">'Сэндвич'</span>,
<span class="hljs-string" style="color: rgb(124, 124, 124);">'Спагетти'</span>,
<span class="hljs-string" style="color: rgb(124, 124, 124);">'Гамбургер'</span>,
<span class="hljs-string" style="color: rgb(124, 124, 124);">'Картофель фри'</span>
]
*/</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__mb_05 stk-theme_26309__style_medium_header stk-reset" id="stk-24" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">reverse(): разворачивает массив, меняет порядок элементов</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">reverse()</u> переставляет порядок элементов в исходном массиве: последний элемент становится первым, первый — последним и так далее.</p><figure class="stk-theme_26309__mb_05 stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">array</span>.<span class="hljs-built_in">reverse</span>()</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const </span>foods = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
foods.reverse();
console.log(foods); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// ['?', '?', '?', '?', '?', '?', '?', '?', '?', '?']</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Теперь, если вы проверите индекс первого элемента, то им окажется кусок торта, а не пицца. Это значит, что порядок элементов в массиве изменился:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> foods = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
foods.<span class="hljs-built_in">reverse</span>();
console.<span class="hljs-built_in">log</span>(foods[0]); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// ?</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__mb_05 stk-theme_26309__style_medium_header stk-reset" id="stk-25" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">reduce(): свёртывает элементы массива в единое значение </strong></h3><p class="stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">reduce()</u> применяет <a class="stk-reset" href="https://developer.mozilla.org/ru/docs/Glossary/Callback_function" target="_blank" data-gtm-vis-has-fired10171822_255="1">функцию обратного вызова</a> последовательно для каждого элемента массива, сохраняет промежуточный результат и выводит общее значение. Это может быть объединённые строки, сумма чисел и так далее.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Разберём процесс по шагам:</p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">Функция получает начальное значение.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">Переходит к первому элементу массива и начальному значению.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">Получается промежуточный результат, который становится новым начальным значением.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">Функция переходит к следующему элементу массива и обновлённому начальному значению.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">Процесс повторяется, пока функция не пройдёт по всем элементам.</li></ul><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">reduce()</u> самый сложный для понимания, поэтому далее массив с эмодзи мы заменим массивом чисел. Так будет проще понять его принцип:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> numbers = [1, 2, 3, 4, 5];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Используем метод reduce() для нахождения суммы всех элементов</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> <span class="hljs-keyword" style="color: rgb(150, 203, 254);">sum</span> = numbers.reduce((accumulator, currentValue) => {
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// На каждой итерации добавляем текущее значение (currentValue) к аккумулятору (accumulator)</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">return</span> accumulator + currentValue;
}, 0); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Начальное значение аккумулятора 0</span>
console.<span class="hljs-built_in">log</span>(<span class="hljs-keyword" style="color: rgb(150, 203, 254);">sum</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 15</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Рассмотрим работу метода <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">reduce()</u> на каждом этапе итерации:</p><div class="stk-table-wrap"><table data-responsive-type="scroll" class="stk-reset stk-table stk-table--bordered_hv" data-ce-tag="table"><colgroup><col class="stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset" data-stk-css="stkTTzcQ" data-stk-id="311"/><col class="stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset" data-stk-css="stkWviy4" data-stk-id="312"/><col class="stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset" data-stk-css="stk8CCMf" data-stk-id="313"/><col class="stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset" data-stk-css="stkaKnem" data-stk-id="314"/></colgroup><thead class="stk-reset"><tr class="stk-reset stk-table-row stk-theme_26309__style_font_style-1629726727970"><th class="ce-element--empty stk-element_no-text stk-reset stk-table-cell" data-ce-tag="th"></th><th class="stk-reset stk-table-cell" data-ce-tag="th"><strong class="stk-reset">Накопленное значение<br><u class="stk-reset">accumulator</u></strong></th><th class="stk-reset stk-table-cell" data-ce-tag="th">Текущее значение <u class="stk-reset">currentValue</u></th><th class="stk-reset stk-table-cell" data-ce-tag="th">Сумма<br><u class="stk-reset">sum</u></th></tr></thead><tbody class="stk-reset"><tr class="stk-reset stk-table-row" data-stk-css="stk5UVtn"><td class="stk-reset stk-table-cell" data-ce-tag="td">Первая итерация</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Накопленное значениеaccumulator">0</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Текущее значение currentValue">1</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Суммаsum">1</td></tr><tr class="stk-reset stk-table-row" data-stk-css="stkll2UC"><td class="stk-reset stk-table-cell" data-ce-tag="td">Вторая итерация</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Накопленное значениеaccumulator">1</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Текущее значение currentValue">2</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Суммаsum">3</td></tr><tr class="stk-reset stk-table-row" data-stk-css="stkGd_Yj"><td class="stk-reset stk-table-cell" data-ce-tag="td">Третья итерация</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Накопленное значениеaccumulator">3</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Текущее значение currentValue">3</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Суммаsum">6</td></tr><tr class="stk-reset stk-table-row" data-stk-css="stkN9F_W"><td class="stk-reset stk-table-cell" data-ce-tag="td">Четвёртая итерация</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Накопленное значениеaccumulator">6</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Текущее значение currentValue">4</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Суммаsum">10</td></tr><tr class="stk-reset stk-table-row" data-stk-css="stk6T8Vh"><td class="stk-reset stk-table-cell" data-ce-tag="td">Пятая итерация</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Накопленное значениеaccumulator">10</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Текущее значение currentValue">5</td><td class="stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Суммаsum"><strong class="stk-reset">15</strong></td></tr></tbody></table></div><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">А вот так выглядит синтаксис метода <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">reduce()</u>:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-selector-tag" style="color: rgb(150, 203, 254);">array</span><span class="hljs-selector-class">.reduce</span>(<span class="hljs-selector-tag" style="color: rgb(150, 203, 254);">callback</span>, <span class="hljs-selector-attr" style="color: rgb(168, 255, 96);">[initialValue]</span>);</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">callback</u> — это функция, которая будет вызываться для каждого элемента массива. Она может принимать четыре аргумента:</li></ul><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-stk-css="stk_57_k" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">accumulator</u> — это накопленное значение, которое обновляется после каждого вызова функции.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">currentValue</u> — текущий обрабатываемый элемент массива.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">currentIndex</u> — индекс текущего обрабатываемого элемента. Этот параметр не обязательный, если указано значение <u class="stk-reset">initialValue</u>.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">array</u> — это сам массив, на котором мы вызываем метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">reduce()</u>. Это также необязательный параметр, если задано <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">initialValue</u>.</li></ul><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">initialValue</u> — это начальное значение аккумулятора, с которого начинается накопление. Если не передано, то начальным значением становится первый элемент массива и перебор идёт со второго элемента.</li></ul><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Ниже будет код, которые поможет лучше разобраться в синтаксисе метода <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">reduce()</u>. Запустите его и посмотрите, что происходит на каждой итерации:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> numbers = [<span class="hljs-number" style="color: rgb(255, 115, 253);">1</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">2</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">3</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">4</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">5</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// С помощью метода reduce() создаём строку с информацией о каждом элементе массива</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> result = numbers.reduce((accumulator, currentValue, currentIndex, array) => {
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Выводим информацию о текущей итерации</span>
<span class="hljs-built_in">console</span>.log(<span class="hljs-string" style="color: rgb(168, 255, 96);">`Итерация <span class="hljs-subst" style="color: rgb(218, 239, 163);">${currentIndex}</span>:`</span>);
<span class="hljs-built_in">console</span>.log(<span class="hljs-string" style="color: rgb(168, 255, 96);">` Текущий элемент: <span class="hljs-subst" style="color: rgb(218, 239, 163);">${currentValue}</span>`</span>);
<span class="hljs-built_in">console</span>.log(<span class="hljs-string" style="color: rgb(168, 255, 96);">` Текущий индекс: <span class="hljs-subst" style="color: rgb(218, 239, 163);">${currentIndex}</span>`</span>);
<span class="hljs-built_in">console</span>.log(<span class="hljs-string" style="color: rgb(168, 255, 96);">` Исходный массив: [<span class="hljs-subst" style="color: rgb(218, 239, 163);">${array.join(', ')}</span>]`</span>);
<span class="hljs-built_in">console</span>.log(<span class="hljs-string" style="color: rgb(168, 255, 96);">` Аккумулятор до: <span class="hljs-subst" style="color: rgb(218, 239, 163);">${accumulator}</span>`</span>);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Формируем строку с информацией о текущем элементе и добавляем её к аккумулятору</span>
accumulator += <span class="hljs-string" style="color: rgb(168, 255, 96);">`Элемент <span class="hljs-subst" style="color: rgb(218, 239, 163);">${currentIndex + 1}</span>: <span class="hljs-subst" style="color: rgb(218, 239, 163);">${currentValue}</span>\n`</span>;
<span class="hljs-built_in">console</span>.log(<span class="hljs-string" style="color: rgb(168, 255, 96);">` Аккумулятор после: <span class="hljs-subst" style="color: rgb(218, 239, 163);">${accumulator}</span>\n`</span>);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Возвращаем обновлённый аккумулятор для следующей итерации</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">return</span> accumulator;
}, <span class="hljs-string" style="color: rgb(168, 255, 96);">''</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Начальное значение аккумулятора — пустая строка</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Итоговый результат</span>
<span class="hljs-built_in">console</span>.log(<span class="hljs-string" style="color: rgb(168, 255, 96);">'Результат:\n'</span> + result);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">/*
Ожидаемый вывод в консоли:
Итерация 0:
Текущий элемент: 1
Текущий индекс: 0
Исходный массив: [1, 2, 3, 4, 5]
Аккумулятор до:
Аккумулятор после: Элемент 1: 1
Итерация 1:
Текущий элемент: 2
Текущий индекс: 1
Исходный массив: [1, 2, 3, 4, 5]
Аккумулятор до: Элемент 1: 1
Аккумулятор после: Элемент 1: 1
Элемент 2: 2
*/</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-26"><strong class="stk-reset">Практика по массивам</strong></h2><p class="stk-reset" data-ce-tag="paragraph">Работа с массивами важна для эффективного программирования и изучения популярных фреймворков вроде <a href="https://skillbox.ru/media/code/reactjs-dlya-novichkov-v-programmirovanii-chto-eto-kak-ustroen-i-zachem-nuzhen/" target="_blank" class="stk-reset">React</a>. Поэтому чем чаще вы практикуетесь, тем глубже погружаетесь в тему. В этом разделе мы собрали задачи на методы массивов, которые мы разбирали в статье.</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-27" data-ce-tag="paragraph"><strong class="stk-reset">Задача на добавление и извлечение элементов </strong></h3><p class="stk-reset" data-ce-tag="paragraph">Перед вами список покупок: ?, ?, ?, ?, ?, ?. Создайте для этого списка массив, а затем добавьте по одному новому овощу в начало и конец списка. Добавьте ещё овощей и уберите из массива все фрукты.</p><details class="stk-content-spoiler stk-container stk-reset stk-theme_26309__mb_05" data-ce-tag="container" data-container-name="Спойлер"><summary class="stk-container stk-reset" data-ce-tag="container" data-container-name="Переключатель спойлера"><p class="stk-reset" data-ce-tag="paragraph">Решение</p></summary><div class="stk-container" data-ce-tag="container" data-container-name="Контент спойлера"><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-comment" style="color: rgb(124, 124, 124);">// Шаг 1: Создаём массив с тремя овощами и тремя фруктами</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> groceryList = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Шаг 2: Добавляем по одному овощу в начало и конец массива</span>
groceryList.unshift(<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Добавляем брокколи в начало</span>
groceryList.push(<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Добавляем баклажан в конец</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Шаг 3: Заменяем три фрукта на овощи</span>
groceryList.<span class="hljs-built_in">splice</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">4</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">3</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?️'</span>);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Заменяем яблоко, банан и виноград на картофель, помидор и перец</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Наш итоговый овощной массив</span>
console.<span class="hljs-built_in">log</span>(groceryList);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// ['?', '?', '?', '?', '?', '?', '?️', '?']</span>
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></details><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-28" data-ce-tag="paragraph"><strong class="stk-reset">Задача на создание массивов из текущих</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">В трёх зоопарках содержатся следующие виды животных:</p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">В первом зоопарке: ? бурундук, ?️ белка, ? лев, ??? три орла, ? обезьяна, ? змея, ? сова, ? слон, ? черепаха, ? медведь.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">Во втором зоопарке: ? панда, ? коала, ? утка, ? жираф, ??? три попугая, ? орёл, ? тигр, ? пингвин, ? осьминог, ? бабочка, ? ёж.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">В третьем зоопарке: ? лягушка, ? обезьяна, ?? два орла, ??? три попугая, ? жираф, ? змея, ? черепаха, ? лиса.</li></ul><p class="stk-reset" data-ce-tag="paragraph">Поместите животных из каждого зоопарка в отдельный массив: <u class="stk-reset">zoo1</u>, <u class="stk-reset">zoo2</u> и <u class="stk-reset">zoo3</u>. Объедините все три массива в один общий — <u class="stk-reset">allAnimals</u>.</p><p class="stk-reset" data-ce-tag="paragraph">Выберите из общего массива <u class="stk-reset">allAnimals</u> всех ? орлов и ? попугаев. Сохраните их в новый массив <u class="stk-reset">eaglesParrots</u>. Отправьте орлов и попугаев в ветклинику ? и сохраните результат в новом массиве <u class="stk-reset">treatedAnimals</u>.</p><details class="stk-content-spoiler stk-container stk-reset stk-theme_26309__mb_05" data-ce-tag="container" data-container-name="Спойлер"><summary class="stk-container stk-reset" data-ce-tag="container" data-container-name="Переключатель спойлера"><p class="stk-reset" data-ce-tag="paragraph">Решение</p></summary><div class="stk-container" data-ce-tag="container" data-container-name="Контент спойлера"><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-comment" style="color: rgb(124, 124, 124);">// Помещаем животных из каждого зоопарка в отдельный массив</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> zoo1 = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?️'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> zoo2 = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> zoo3 = [<span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Объедините все три массива в один общий</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> allAnimals = zoo1.concat(zoo2, zoo3);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Выбираем из общего массива всех орлов и попугаев</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> eaglesParrots = allAnimals.filter(animal => animal === <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span> || animal === <span class="hljs-string" style="color: rgb(168, 255, 96);">'?'</span>);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Отправляем орлов и попугаев в ветклинику ?</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> treatedAnimals = eaglesParrots.map(animal => `${animal}?`);
console.<span class="hljs-built_in">log</span>(treatedAnimals);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// ['??', '??', '??', >'??', '??', '??', '??', <'??', '??', '??', '??', '??']</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></details><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-29" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">Задача на метод forEach()</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">У вас есть массив с различными транспортными средствами:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> vehicles = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"✈️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Напишите программу, которая будет выводить информацию о каждом транспортном средстве в консоль в таком формате:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">Транспортное средство <span class="hljs-variable" style="color: rgb(248, 248, 248);"><индекс></span>: <span class="hljs-variable" style="color: rgb(198, 197, 254);"><символ></span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Пример вывода:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">Транспортное средство <span class="hljs-number" style="color: rgb(255, 115, 253);">1</span>: ?
Транспортное средство <span class="hljs-number" style="color: rgb(255, 115, 253);">2</span>: ?
Транспортное средство <span class="hljs-number" style="color: rgb(255, 115, 253);">3</span>: ?
...</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><details class="stk-content-spoiler stk-container stk-reset" data-ce-tag="container" data-container-name="Спойлер"><summary class="stk-container stk-reset" data-ce-tag="container" data-container-name="Переключатель спойлера"><p class="stk-reset" data-ce-tag="paragraph">Решение</p></summary><div class="stk-container" data-ce-tag="container" data-container-name="Контент спойлера"><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> vehicles = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"✈️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Пишем функцию для вывода информации о каждом транспортном средстве</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> displayVehicleInfo = (vehicle, index) => {
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Выводим информацию в формате "Транспортное средство <индекс>: <символ>"</span>
console.<span class="hljs-built_in">log</span>(`Транспортное средство <span class="hljs-variable" style="color: rgb(198, 197, 254);">${index</span> + 1}: <span class="hljs-variable" style="color: rgb(198, 197, 254);">${vehicle}</span>`);
};
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Используем метод forEach для вызова функции displayVehicleInfo для каждого элемента массива</span>
vehicles.<span class="hljs-keyword" style="color: rgb(150, 203, 254);">forEach</span>((vehicle, index) => {
displayVehicleInfo(vehicle, index);
});
<span class="hljs-comment" style="color: rgb(124, 124, 124);">/**
Транспортное средство 1: ?
Транспортное средство 2: ?
Транспортное средство 3: ?
Транспортное средство 4: ?
Транспортное средство 5: ?
Транспортное средство 6: ?️
Транспортное средство 7: ?
Транспортное средство 8: ?
Транспортное средство 9: ✈️
Транспортное средство 10: ?
*/</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></details><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-30" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">Задача на методы every() и includes()</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">В разделе про метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">every()</u> мы использовали цикл <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">for</u> для перебора всех наземных транспортных средств. Перепишите код, чтобы вместо цикла в теле функции оказался метод <u class="stk-reset" data-gtm-vis-has-fired10171822_255="1">includes()</u>. Проверьте результат:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> vehicles = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"✈️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> isLandTransport = (vehicle) => {
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> landTransports = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">for</span> (<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> i = <span class="hljs-number" style="color: rgb(255, 115, 253);">0</span>; i < landTransports.length; i++) {
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">if</span> (vehicle === landTransports[i]) {
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">return</span> <span class="hljs-literal" style="color: rgb(198, 197, 254);">true</span>;
}
}
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">return</span> <span class="hljs-literal" style="color: rgb(198, 197, 254);">false</span>;
};
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> allLandTransport = vehicles.every(isLandTransport);
<span class="hljs-built_in">console</span>.log(allLandTransport); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// false, в массиве есть ✈️ и ?</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><details class="stk-content-spoiler stk-container stk-reset" data-ce-tag="container" data-container-name="Спойлер"><summary class="stk-container stk-reset" data-ce-tag="container" data-container-name="Переключатель спойлера"><p class="stk-reset" data-ce-tag="paragraph">Решение</p></summary><div class="stk-container" data-ce-tag="container" data-container-name="Контент спойлера"><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> vehicles = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"✈️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> isLandTransport = (vehicle) => {
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> landTransports = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?️"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"?"</span>];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Проверяем, входит ли переданное транспортное средство в список наземных транспортных средств</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">return</span> landTransports.includes(vehicle);
};
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> allLandTransport = vehicles.every(isLandTransport);
console.log(allLandTransport); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// false, потому что в массиве есть ✈️ и ?</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></details><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-31" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">Задача на метод sort()</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">У вас есть массив с блюдами. Отсортируйте его по длине строк: от меньшего описания блюд к большему. Результат выведите в консоль:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> foodDescriptions = [
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Салат Цезарь"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Паста Болоньезе"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Ролл Филадельфия"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Суп Том Ям"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Стейк Медиум"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Пицца Маргарита"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Чизкейк Нью-Йорк"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Хот-дог с сыром"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Суши Филадельфия"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Фруктовый салат"</span>,
];</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><details class="stk-content-spoiler stk-container stk-reset" data-ce-tag="container" data-container-name="Спойлер"><summary class="stk-container stk-reset" data-ce-tag="container" data-container-name="Переключатель спойлера"><p class="stk-reset" data-ce-tag="paragraph">Решение</p></summary><div class="stk-container" data-ce-tag="container" data-container-name="Контент спойлера"><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const </span>foodDescriptions = [
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Салат Цезарь"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Паста Болоньезе"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Ролл Филадельфия"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Суп Том Ям"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Стейк Медиум"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Пицца Маргарита"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Чизкейк Нью-Йорк"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Хот-дог с сыром"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Суши Филадельфия"</span>,
<span class="hljs-string" style="color: rgb(168, 255, 96);">"Фруктовый салат"</span>,
];
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Создаём функцию для получения длины строки</span>
const getStringLength = (str) => {
return str.length;
};
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Сортируем массив по длине строк от меньшей к большей</span>
foodDescriptions.sort((a, b) => {
return getStringLength(a) - getStringLength(b);
});
console.log(foodDescriptions);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">/**
[
'Суп Том Ям',
'Салат Цезарь',
'Стейк Медиум',
'Паста Болоньезе',
'Пицца Маргарита',
'Хот-дог с сыром',
'Фруктовый салат',
'Ролл Филадельфия',
'Чизкейк Нью-Йорк',
'Суши Филадельфия'
]
*/</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></details><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" id="stk-32" data-ce-tag="paragraph"><strong class="stk-reset" data-gtm-vis-has-fired10171822_255="1">Задача на метод reduce()</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">У вас есть массив строк с фруктами. Посчитайте общее количество букв:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fruits = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"яблоко"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"банан"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"киви"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"манго"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"груша"</span>];</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><details class="stk-content-spoiler stk-container stk-reset" data-ce-tag="container" data-container-name="Спойлер"><summary class="stk-container stk-reset" data-ce-tag="container" data-container-name="Переключатель спойлера"><p class="stk-reset" data-ce-tag="paragraph">Решение</p></summary><div class="stk-container" data-ce-tag="container" data-container-name="Контент спойлера"><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> fruits = [<span class="hljs-string" style="color: rgb(168, 255, 96);">"яблоко"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"банан"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"киви"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"манго"</span>, <span class="hljs-string" style="color: rgb(168, 255, 96);">"груша"</span>];
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> totalLetters = fruits.reduce((accumulator, currentValue) => {
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Добавляем длину текущей строки к аккумулятору</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">return</span> accumulator + currentValue.length;
}, <span class="hljs-number" style="color: rgb(255, 115, 253);">0</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Начальное значение аккумулятора 0</span>
console.log(totalLetters); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 25</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></details></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-33"><strong class="stk-reset">Что дальше</strong></h2><p class="stk-reset" data-ce-tag="paragraph">Вы познакомились с основными методами массивов в JavaScript и их базовым синтаксисом. Для дальнейшего изучения массивов советуем обращаться к веб-документации <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array" target="_blank" class="stk-reset">MDN Web Docs</a> от компании Mozilla.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><div class="stk-grid stk-grid__layout_columns" data-stk-css="stkb7buL" data-ce-tag="grid"><div data-col-width="1" class="stk-grid-col align-left valign-top stk-mobile-hidden" data-ce-tag="grid-col" data-stk-css="" data-stk-css-m=""><a class="sklbx-link sklbx-link--fb stk-container stk-container-link stk-reset" data-ce-tag="container" data-container-name="Telegram" href="https://t.me/skillbox_media_code" target="_blank"><svg class="sklbx-link__icon" width="25" height="20" xmlns="http://www.w3.org/2000/svg">
<path d="m9.417 15.181-.397 5.584c.568 0 .814-.244 1.109-.537l2.663-2.545 5.518 4.041c1.012.564 1.725.267 1.998-.931l3.622-16.972.001-.001c.321-1.496-.541-2.081-1.527-1.714l-21.29 8.151c-1.453.564-1.431 1.374-.247 1.741l5.443 1.693 12.643-7.911c.595-.394 1.136-.176.691.218z" fill-rule="evenodd"></path>
</svg></a></div><div data-col-width="11" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><p class="stk-reset stk-theme_26309__mb_05 stk-theme_26309__style_font_style-1629786048064" data-ce-tag="paragraph" data-stk-css="stkjepqW">Больше интересного про код — в нашем <a class="stk-reset" href="https://t.me/skillbox_media_code" target="_blank">телеграм-канале</a>. Подписывайтесь!</p></div></div></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><div class="stk-grid" data-ce-tag="grid" data-stk-css="stkVe3io"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col" data-stk-css="" data-stk-css-m=""><p class="stk-reset stk-theme_26309__style_small_text stk-theme_26309__mb_05" data-ce-tag="paragraph"><strong class="stk-reset">Читайте также:</strong></p><ul class="stk-theme_26309__style_small_text stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/chto-takoe-massiv-i-kak-on-ustroen/" target="_blank" class="stk-reset">Что такое массив и как он устроен</a></li><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/chto-takoe-javascript-i-zachem-on-nuzhen/" target="_blank" class="stk-reset">Что такое JavaScript и зачем он нужен</a></li><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/javascript_glavnyy_instrument_frontend/?utm_source=media&utm_medium=link&utm_campaign=all_all_media_links_links_articles_all_all_skillbox" target="_blank" class="stk-reset">JavaScript: главный инструмент frontend-разработчиков</a></li><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/chto_nelzya_sdelat_bez_javascript/?utm_source=media&utm_medium=link&utm_campaign=all_all_media_links_links_articles_all_all_skillbox" target="_blank" class="stk-reset">Что нельзя сделать без JavaScript</a></li><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/6_redaktorov_i_ide_dlya_raboty_s_javascript/" target="_blank" class="stk-reset">6 редакторов и IDE для работы с JavaScript</a></li><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/typescript_kak_s_nim_rabotat_i_chem_on_otlichaetsya_ot_javascript/" target="_blank" class="stk-reset">TypeScript: как с ним работать и чем он отличается от JavaScript</a></li></ul></div></div></div></div><style data-stk-css="stkVe3io" media="all" class="">
[data-stk-css="stkVe3io"]:not(#stk):not(#stk):not(style) {
padding: 20px;
background-color: rgba(254, 245, 224, 1)
}
</style><style data-stk-css="stkb7buL" class="" media="all">
[data-stk-css="stkb7buL"]:not(#stk):not(#stk):not(style) {
border-radius: 16px;
padding: 20px;
border: 1px solid;
border-color: #E4E4E4;
background-color: rgba(241, 242, 246, 1)
}
</style><style data-stk-css="stkjepqW" class="" media="all">
[data-stk-css="stkjepqW"]:not(#stk):not(#stk):not(style) {
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
-o-hyphens: none;
hyphens: none
}
</style><style data-stk-css="stkvTbaG" class="" media="all">
[data-stk-css="stkvTbaG"]:not(#stk):not(#stk):not(style) {
border-radius: 16px;
padding: 40px;
border: 1px solid;
background-color: rgba(255, 255, 255, 1);
border-color: #E4E4E4;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
</style><style data-stk-css="stkYVQo9" class="" media="all">
[data-stk-css="stkYVQo9"]:not(#stk):not(#stk):not(style) {
border-radius: 16px;
padding: 40px;
border: 1px solid;
background-color: rgba(255, 255, 255, 1);
border-color: #E4E4E4;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
</style><style data-stk-css="stktjLx4" class="" media="all">[data-stk-css="stktjLx4"]:not(#stk):not(#stk):not(style){margin-left: 40px}</style><style data-stk-css="stkOzzt2" class="" media="all">[data-stk-css="stkOzzt2"]:not(#stk):not(#stk):not(style){margin-left: 40px}</style><style data-stk-css="stkJ7weL" class="" media="all">[data-stk-css="stkJ7weL"]:not(#stk):not(#stk):not(style){margin-left: 40px}</style><style data-stk-css="stkUsyFg" class="" media="all">[data-stk-css="stkUsyFg"]:not(#stk):not(#stk):not(style){margin-left: 40px}</style><style data-stk-css="stksb2ld" class="" media="all">[data-stk-css="stksb2ld"]:not(#stk):not(#stk):not(style){margin-left: 40px}</style><style data-stk-css="stkFyLTa" class="" media="all">[data-stk-css="stkFyLTa"]:not(#stk):not(#stk):not(style){margin-left: 40px}</style><div class="stk-footnote stk-footnote--hide" data-stk-show="mouseover" data-stk-footnote-body="fnRHJ9j" data-ce-tag="footnote" style="display:none"><div class="stk-footnote__close"></div><div class="stk-footnote__body"><p class="stk-theme_26309__style_small_text stk-reset" data-ce-tag="paragraph">Интерпретатор — это программа, которая выполняет JavaScript-код. Она переводит ваш код на язык, понятный компьютеру, что делает веб-страницы интерактивными и динамичными.</p></div></div><style data-stk-css="stkTTzcQ" class="" media="all">[data-stk-css="stkTTzcQ"]:not(#stk):not(#stk):not(style){border: 1px solid grey; width: 20%}</style><style data-stk-css="stkWviy4" class="" media="all">[data-stk-css="stkWviy4"]:not(#stk):not(#stk):not(style){border: 1px solid grey; width: 20%}</style><style data-stk-css="stk8CCMf" class="" media="all">[data-stk-css="stk8CCMf"]:not(#stk):not(#stk):not(style){border: 1px solid grey; width: 20%}</style><style data-stk-css="stkaKnem" class="" media="all">[data-stk-css="stkaKnem"]:not(#stk):not(#stk):not(style){border: 1px solid grey; width: 20%}</style><style data-stk-css="stk_57_k" class="" media="all">[data-stk-css="stk_57_k"]:not(#stk):not(#stk):not(style){margin-left: 40px}</style><style data-stk-css="stk5UVtn" class="" media="all">[data-stk-css="stk5UVtn"]:not(#stk):not(#stk):not(style){background: #e4b8af}</style><style data-stk-css="stkll2UC" class="" media="all">[data-stk-css="stkll2UC"]:not(#stk):not(#stk):not(style){background: #f3cbcc}</style><style data-stk-css="stkGd_Yj" class="" media="all">[data-stk-css="stkGd_Yj"]:not(#stk):not(#stk):not(style){background: #fbe5cd}</style><style data-stk-css="stkN9F_W" class="" media="all">[data-stk-css="stkN9F_W"]:not(#stk):not(#stk):not(style){background: #fff2cc}</style><style data-stk-css="stk6T8Vh" class="" media="all">[data-stk-css="stk6T8Vh"]:not(#stk):not(#stk):not(style){background: #daead3}</style></div> </div>
</div>
</div>
</div>
<div class="col-xl-9 col-lg-8 col-poster">
<div class="article-preview-info">
</div>
</div>
<noindex>
<div class="share" data-nosnippet>
<button class="share__handler-btn ">
<span class="share__handler-icon">
<svg width="11" height="12" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11 4.99902L6 0V2.99805C2.688 2.99805 0 5.68505 0 8.99805V11.498H0.0980225C0.765022 8.91205 3.107 6.99805 5.901 6.99805H6.00098V9.99805L11 4.99902Z" fill="currentColor"/>
</svg>
</span>
<span class="share__handler-text">Поделиться</span>
</button>
<div class="share__list">
<a href="#" class="share__item" data-code="vk">
<span class="share__item-icon share__item-icon--vk">
<svg width="9" height="5" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.04776 4.98054H4.53996C4.62377 4.97136 4.70279 4.9361 4.76621 4.87951C4.81226 4.81209 4.83594 4.73139 4.83369 4.64925C4.83369 4.64925 4.82574 3.94629 5.1314 3.84125C5.43701 3.73621 5.826 4.51998 6.23879 4.82297C6.39281 4.95308 6.59128 5.01558 6.79053 4.99669L7.89399 4.98054C7.89399 4.98054 8.47355 4.94415 8.19965 4.46339C7.98372 4.08315 7.70589 3.743 7.37799 3.45744C6.68338 2.77872 6.77865 2.8878 7.61219 1.71216C8.12024 0.997077 8.32269 0.556717 8.25918 0.370875C8.14651 0.254767 7.98299 0.205914 7.82655 0.241594L6.58018 0.249674C6.52565 0.241067 6.46984 0.251007 6.42141 0.277954C6.37298 0.314507 6.33466 0.363228 6.31025 0.419356C6.18259 0.772814 6.0287 1.11586 5.8498 1.44552C5.29807 2.43936 5.07579 2.49188 4.98451 2.43128C4.77416 2.28584 4.82574 1.85356 4.82574 1.54248C4.82574 0.580957 4.96468 0.176954 4.55979 0.0719133C4.36879 0.0254376 4.17259 0.00505841 3.97631 0.0113129C3.62834 -0.0214164 3.27745 0.017045 2.94429 0.124433C2.8014 0.197154 2.69423 0.358753 2.76171 0.370875C2.90334 0.385518 3.03406 0.454932 3.12688 0.564795C3.21268 0.750336 3.25481 0.953675 3.24993 1.15868C3.24993 1.15868 3.32535 2.29392 3.07925 2.43532C2.91254 2.53228 2.68232 2.33432 2.18616 1.4334C2.01958 1.11848 1.87243 0.793298 1.74557 0.459754C1.72231 0.404013 1.68704 0.354309 1.64236 0.314316C1.58589 0.272672 1.52066 0.245006 1.45184 0.233514L0.268986 0.241594C0.181167 0.241154 0.0958013 0.271066 0.0268587 0.326434C-0.00595087 0.396174 -0.00882613 0.476652 0.0189202 0.548633C0.0189202 0.548633 0.947737 2.83932 1.99563 3.99477C2.51 4.60651 3.2568 4.96526 4.04776 4.98054Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Vkontakte</span>
</a>
<a href="#" class="share__item" data-code="tw">
<span class="share__item-icon share__item-icon--tw">
<svg width="9" height="7" viewBox="0 0 9 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.52788 0.00144284V0H5.9158L6.05754 0.027414C6.15204 0.0452114 6.23783 0.068535 6.31491 0.0973918C6.39201 0.126249 6.46661 0.159917 6.53872 0.198391C6.61083 0.236864 6.67623 0.276066 6.73492 0.315982C6.79311 0.355422 6.84533 0.397265 6.89158 0.441509C6.93733 0.486237 7.0087 0.49778 7.10568 0.476138C7.20266 0.454495 7.3071 0.424433 7.419 0.38596C7.5309 0.347487 7.64156 0.304201 7.75097 0.256104C7.86039 0.208007 7.92703 0.177469 7.95091 0.164484C7.97428 0.151022 7.98671 0.143808 7.98821 0.142841L7.98969 0.140677L7.99715 0.13707L8.00461 0.133463L8.01207 0.129856L8.01953 0.126249L8.02102 0.124084L8.02326 0.122642L8.02551 0.121199L8.02699 0.119034L8.03445 0.11687L8.04191 0.115427L8.04043 0.126249L8.03818 0.13707L8.03445 0.147891L8.03072 0.158713L8.02699 0.165927L8.02326 0.173141L8.01953 0.183962C8.01705 0.191176 8.01456 0.200793 8.01207 0.212819C8.00959 0.224845 7.98596 0.272935 7.9412 0.357103C7.89644 0.441271 7.84049 0.526637 7.77335 0.613208C7.70621 0.699778 7.64604 0.765182 7.59283 0.809434C7.53911 0.854162 7.50355 0.885421 7.48614 0.903219C7.46874 0.921492 7.4476 0.938323 7.42273 0.953718L7.38543 0.977525L7.37797 0.981132L7.37051 0.984739L7.36902 0.986903L7.36678 0.988346L7.36454 0.989789L7.36305 0.991953L7.35559 0.99556L7.34813 0.999168L7.34664 1.00133L7.3444 1.00277L7.34216 1.00422L7.34067 1.00638L7.33918 1.00855L7.33694 1.00999L7.3347 1.01143L7.33321 1.0136H7.37051L7.57939 0.970311C7.71865 0.941454 7.85168 0.906588 7.9785 0.865705L8.17992 0.800777L8.2023 0.793563L8.21349 0.789956L8.22095 0.786348L8.22841 0.782741L8.23587 0.779134L8.24333 0.775527L8.25825 0.773363L8.27317 0.77192V0.786348L8.26944 0.787791L8.26571 0.789956L8.26423 0.79212L8.26198 0.793563L8.25974 0.795006L8.25825 0.79717L8.25677 0.799334L8.25452 0.800777L8.25228 0.80222L8.25079 0.804384L8.24931 0.806548L8.24706 0.807991L8.24333 0.815205L8.2396 0.82242L8.23736 0.823862C8.23637 0.825305 8.20479 0.866181 8.14262 0.946504C8.08046 1.0273 8.04689 1.06818 8.04191 1.06915C8.03694 1.07059 8.02997 1.0778 8.02102 1.09079C8.01257 1.10425 7.95985 1.15788 7.86287 1.25166C7.76589 1.34545 7.67091 1.42889 7.57791 1.502C7.48441 1.57558 7.43716 1.666 7.43616 1.77325C7.43467 1.88002 7.42895 2.00074 7.419 2.13541C7.40905 2.27007 7.3904 2.41555 7.36305 2.57186C7.3357 2.72817 7.29342 2.90492 7.23623 3.10211C7.17904 3.29929 7.10941 3.49168 7.02735 3.67925C6.94529 3.86681 6.8595 4.03514 6.76998 4.18424C6.68046 4.33334 6.5984 4.45958 6.5238 4.56299C6.4492 4.66639 6.37336 4.76378 6.29626 4.85516C6.21918 4.94654 6.12171 5.04947 6.00384 5.16393C5.88547 5.27791 5.82082 5.34044 5.80988 5.3515C5.79844 5.36208 5.74971 5.40152 5.66365 5.46981C5.57812 5.53858 5.48611 5.60736 5.38763 5.67614C5.28966 5.74443 5.19964 5.80143 5.11758 5.84711C5.03552 5.8928 4.93655 5.94498 4.82067 6.00366C4.70529 6.06282 4.58046 6.11765 4.44618 6.16815C4.3119 6.21865 4.17016 6.26554 4.02096 6.30882C3.87176 6.35211 3.72753 6.38578 3.58827 6.40982C3.44903 6.43387 3.29112 6.45431 3.11456 6.47114L2.84973 6.49639V6.5H2.36483V6.49639L2.30142 6.49279C2.25915 6.49038 2.22433 6.48797 2.19698 6.48557C2.16963 6.48317 2.06643 6.46994 1.88739 6.44589C1.70835 6.42185 1.56785 6.3978 1.4659 6.37375C1.36395 6.34971 1.21225 6.30401 1.01083 6.23668C0.809413 6.16935 0.637087 6.10129 0.493854 6.03252C0.351121 5.96422 0.261601 5.92094 0.225293 5.90266C0.189485 5.88487 0.149201 5.86275 0.10444 5.83629L0.0373001 5.79661L0.0358156 5.79445L0.0335701 5.79301L0.0313321 5.79156L0.0298401 5.7894L0.0223801 5.78579L0.0149201 5.78219L0.0134355 5.78002L0.01119 5.77858L0.00895204 5.77714L0.00746003 5.77497L0.00597548 5.77281L0.00373001 5.77137H0V5.75694L0.00746003 5.75838L0.0149201 5.76054L0.0484902 5.76415C0.0708703 5.76655 0.131796 5.77016 0.231261 5.77497C0.330733 5.77978 0.436412 5.77978 0.548312 5.77497C0.660213 5.77016 0.774605 5.75934 0.891474 5.74251C1.00835 5.72568 1.14636 5.69682 1.30551 5.65594C1.46466 5.61505 1.61087 5.56648 1.74416 5.51021C1.87695 5.45346 1.97144 5.41114 2.02764 5.38324C2.08334 5.35583 2.16838 5.30484 2.28277 5.2303L2.45435 5.11848L2.45584 5.11632L2.45808 5.11487L2.46033 5.11343L2.46181 5.11127L2.4633 5.1091L2.46554 5.10766L2.46779 5.10622L2.46927 5.10405L2.47673 5.10189L2.48419 5.10044L2.48568 5.09323L2.48792 5.08602L2.49017 5.08457L2.49165 5.08241L2.43197 5.0788C2.39219 5.0764 2.35364 5.07399 2.31634 5.07159C2.27904 5.06918 2.2206 5.05836 2.14103 5.03912C2.06146 5.01988 1.97567 4.99103 1.88366 4.95255C1.79165 4.91408 1.70213 4.86838 1.6151 4.81548C1.52807 4.76258 1.46515 4.71857 1.42636 4.68346C1.38807 4.64883 1.33833 4.59978 1.27716 4.53629C1.21648 4.47233 1.16376 4.40668 1.119 4.33934C1.07424 4.27202 1.03148 4.19433 0.990699 4.10633L0.928774 3.97503L0.925044 3.96421L0.921314 3.95339L0.919076 3.94617L0.917584 3.93896L0.928774 3.9404L0.939964 3.94256L1.02202 3.95339C1.07674 3.9606 1.16253 3.963 1.27939 3.9606C1.39627 3.9582 1.47709 3.95339 1.52185 3.94617C1.56661 3.93896 1.59396 3.93414 1.60391 3.93174L1.61883 3.92814L1.63748 3.92453L1.65613 3.92092L1.65762 3.91876L1.65986 3.91731L1.6621 3.91587L1.66359 3.91371L1.64867 3.9101L1.63375 3.90649L1.61883 3.90289L1.60391 3.89928L1.58899 3.89567C1.57904 3.89327 1.56164 3.88846 1.53677 3.88124C1.5119 3.87403 1.44476 3.84757 1.33535 3.80189C1.22594 3.7562 1.1389 3.71171 1.07424 3.66842C1.00943 3.62501 0.947626 3.57754 0.889235 3.5263C0.831047 3.47436 0.767145 3.40751 0.697513 3.32575C0.627888 3.24399 0.565724 3.149 0.511012 3.04079C0.456308 2.93257 0.415277 2.82917 0.387922 2.73058C0.360676 2.63256 0.3427 2.53235 0.334217 2.43119L0.320781 2.27969L0.328241 2.28113L0.335701 2.2833L0.343161 2.2869L0.350621 2.29051L0.358081 2.29412L0.365541 2.29772L0.481172 2.34822C0.558264 2.38189 0.653998 2.41075 0.768383 2.43479C0.882775 2.45884 0.951154 2.47207 0.973534 2.47447L1.0071 2.47808H1.07424L1.07276 2.47592L1.07051 2.47447L1.06828 2.47303L1.06678 2.47087L1.0653 2.4687L1.06305 2.46726L1.06082 2.46582L1.05932 2.46365L1.05186 2.46004L1.0444 2.45644L1.04292 2.45427L1.04067 2.45283L1.03844 2.45139L1.03694 2.44922L1.02948 2.44562L1.02202 2.44201L1.02054 2.43984C1.01905 2.43888 0.99766 2.42349 0.956376 2.39367C0.915592 2.36337 0.872823 2.32418 0.828063 2.27608C0.783303 2.22798 0.738543 2.17749 0.693783 2.12458C0.64894 2.07156 0.609 2.01483 0.574422 1.95505C0.539614 1.89493 0.502806 1.81846 0.464014 1.72564C0.425721 1.6333 0.396627 1.54023 0.376731 1.44645C0.356843 1.35266 0.345653 1.26008 0.343161 1.1687C0.340677 1.07732 0.343161 0.999168 0.350621 0.93424C0.358081 0.869312 0.373001 0.795965 0.395382 0.714206C0.417762 0.632448 0.450093 0.545877 0.492362 0.454495L0.555772 0.317425L0.559502 0.306604L0.563232 0.295782L0.565478 0.29434L0.566962 0.292175L0.568454 0.290011L0.570692 0.288568L0.572938 0.290011L0.574422 0.292175L0.575914 0.29434L0.578152 0.295782L0.580398 0.297225L0.581882 0.29939L0.583374 0.301554L0.585612 0.302997L0.589342 0.310211L0.593072 0.317425L0.595318 0.318868L0.596802 0.321032L0.697513 0.429245C0.764653 0.501387 0.844229 0.581948 0.936234 0.670921C1.02825 0.759894 1.07922 0.806065 1.08916 0.809434C1.09912 0.813279 1.11154 0.824338 1.12646 0.842619C1.14138 0.860417 1.19112 0.902981 1.27567 0.970311C1.36022 1.03764 1.47087 1.1158 1.60764 1.20477C1.74441 1.29375 1.89609 1.38152 2.0627 1.46809C2.22931 1.55466 2.40835 1.63281 2.59982 1.70255C2.7913 1.77229 2.92558 1.81798 3.00266 1.83962C3.07975 1.86127 3.21154 1.88892 3.39804 1.92259C3.58454 1.95625 3.72505 1.9779 3.81954 1.98751C3.91403 1.99713 3.97869 2.00266 4.0135 2.00411L4.06572 2.00555L4.06423 1.99473L4.06199 1.98391L4.04707 1.89373C4.03712 1.83361 4.03215 1.74944 4.03215 1.64123C4.03215 1.53302 4.04085 1.43322 4.05826 1.34184C4.07567 1.25046 4.10178 1.15788 4.13659 1.0641C4.1714 0.970311 4.20547 0.895038 4.23879 0.838291C4.27261 0.78202 4.31687 0.717814 4.37158 0.645671C4.42629 0.573529 4.49716 0.498985 4.58419 0.422031C4.67122 0.345077 4.77069 0.276542 4.88259 0.216426C4.99449 0.15631 5.09769 0.110615 5.19218 0.0793563C5.28668 0.0480971 5.36625 0.0276521 5.4309 0.0180355C5.49556 0.00841898 5.52788 0.00288568 5.52788 0.00144284Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Twitter</span>
</a>
<a href="#" class="share__item" data-code="tg">
<span class="share__item-icon share__item-icon--tg">
<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.39589 3.04852C1.39589 3.04852 5.05491 1.51189 6.32392 0.9708C6.8104 0.754384 8.46012 0.0617918 8.46012 0.0617918C8.46012 0.0617918 9.22155 -0.241191 9.15809 0.494655C9.13692 0.797667 8.96773 1.85815 8.79854 3.00523C8.54472 4.62846 8.26976 6.40316 8.26976 6.40316C8.26976 6.40316 8.22746 6.90097 7.86791 6.98753C7.50836 7.0741 6.91613 6.68455 6.8104 6.59795C6.72577 6.53304 5.22411 5.5591 4.6742 5.08295C4.52614 4.9531 4.35695 4.6934 4.69533 4.39039C5.45676 3.67617 6.36622 2.78882 6.91613 2.2261C7.16995 1.96638 7.42374 1.36038 6.36622 2.09622C4.86456 3.15674 3.38403 4.15231 3.38403 4.15231C3.38403 4.15231 3.04561 4.36873 2.41111 4.17394C1.77657 3.97918 1.03631 3.71945 1.03631 3.71945C1.03631 3.71945 0.528726 3.39481 1.39589 3.04852Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Telegram</span>
</a>
<a href="#" class="share__item js-share-item-copy">
<span class="share__item-icon share__item-icon--copy">
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.19922 5.40327C4.37217 5.63449 4.59283 5.8258 4.84622 5.96425C5.09962 6.10269 5.37982 6.18501 5.66783 6.20564C5.95584 6.22627 6.24492 6.18471 6.51546 6.08379C6.78599 5.98287 7.03166 5.82495 7.2358 5.62074L8.44399 4.41255C8.81079 4.03277 9.01375 3.52412 9.00917 2.99615C9.00458 2.46818 8.79281 1.96313 8.41946 1.58978C8.04611 1.21644 7.54106 1.00466 7.01309 1.00008C6.48512 0.995488 5.97647 1.19845 5.59669 1.56525L4.904 2.25392" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.81002 4.59658C5.63707 4.36536 5.41641 4.17404 5.16302 4.0356C4.90962 3.89716 4.62942 3.81483 4.34141 3.79421C4.0534 3.77358 3.76432 3.81514 3.49379 3.91605C3.22325 4.01697 2.97758 4.17489 2.77344 4.3791L1.56525 5.58729C1.19845 5.96707 0.995488 6.47572 1.00008 7.0037C1.00466 7.53167 1.21644 8.03672 1.58978 8.41006C1.96313 8.78341 2.46818 8.99518 2.99615 8.99977C3.52412 9.00436 4.03277 8.80139 4.41255 8.43459L5.10122 7.74592" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</span>
<span class="share__item-text">Скопировать ссылку</span>
</a>
</div>
</div>
</noindex>
</div>
<section class="container inset" data-banner="223479" data-source="219534" data-format="horizontal">
<section class="container inset" data-format="horizontal">
<div class="row">
<div class="col-lg-8 col-sm-12">
<a data-source="219534" data-banner="223479" target="_blank" href="https://skillbox.ru/course/frontend-developer/" class="article-advert-banner__link courseLink" data-format="horizontal" data-type="horizontal" data-courseid="3254">
<div class="inset__wrapper" style="background-color: #EDEBF0;">
<div class="inset__content">
<h2 class="inset__header">Курс с помощью в трудоустройстве</h2>
<p class="inset__description">
Профессия Фронтенд-разработчик + ИИ
</p>
<ul class="inset__text" style="color:#000!important; list-style:'\2022 ' outside; margin-left:20px;">
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
Трудоустройство с помощью Центра карьеры Skillbox — можно работать уже через 8 месяцев</li>
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
3 проекта в портфолио и 50 практических задач</li>
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
Нейросети в программе, чтобы быстрее писать и проверять код</li>
</ul>
<p class="inset__button article-advert-banner__link">
Подробнее
</p>
</div>
<div class="inset__image">
<img width="250" src="https://cdn.skillbox.pro/landgen/blocks/start-screen/225567/lg/1b07db09-8fc4-4dc8-b907-dd2b001ce656.webp" height="250" alt="">
</div>
</div>
</a>
</div>
</div>
</section> </section>
<div style="align-content: center; background-color: black; overflow: hidden;">
<noindex>
<div style="display: flex; align-items: center; justify-content: center; background-color: black; height: 60px; color: white; text-align: center">
Листая дальше, вы перейдете на страницу <a style="text-decoration: underline;" data-type="scroll" href="https://bootcamp.skillbox.ru/it-jobs/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-759_all_code_skillbox">Как зарабатывать деньги на IT в 2026 - бесплатный курс «Старт с нуля»</a>
</div>
<div class="iframe-wrapper" style="height: 100vh; transform: scale(0.5);">
<iframe id="test_iframe" scrolling="no" style="overflow: hidden;margin: 0 auto;display: block; width: 100%; height: 100%" src="https://bootcamp.skillbox.ru/it-jobs/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-759_all_code_skillbox">
</iframe>
</div>
</noindex>
</div>
<script>
jQuery(document).ready(function($) {
$('footer.without-buttons').remove();
let iframeWrapper = $('.iframe-wrapper');
var check = false;
$(window).on('scroll', function() {
let iframeWrapperHeight = iframeWrapper.height();
let iframeWrapperOffset = iframeWrapper.offset().top - iframeWrapperHeight;
let scrollTop = $(window).scrollTop();
const {scrollHeight, clientHeight } = document.documentElement;
const maxScroll = scrollHeight - clientHeight;
const power = 1
const scale = (scrollTop / maxScroll) * power;
iframeWrapper.css('height', `${clientHeight}`)
if (scrollTop > iframeWrapperOffset) {
if(!check) {
document.dispatchEvent(new CustomEvent('articleAdvertBanner', {
detail: {
event: 'show',
id: 226244,
sourceId: 219534,
format: "new_banner"
}
}));
}
check = true;
iframeWrapper.css({'transform': `scale(${scale})`})
if (maxScroll === scrollTop || maxScroll === iframeWrapper.offset().top) {
redirect();
} else if (maxScroll <= scrollTop + 1 ) {
redirect();
}
}
function isNeedAddUtm(url)
{
if (typeof url !== 'string') {
return false;
}
var externalLinks = [
'freelancer.skillbox.ru',
'sale.skillbox.ru',
'course.skillbox.ru',
'interiordesign.skillbox.ru',
'iamwebdev.skillbox.ru',
'iammarketer.skillbox.ru',
'iamdesigner.skillbox.ru',
'live.skillbox.ru',
'b2b.skillbox.ru',
'highereducation.skillbox.ru',
'skillbox.ru/courses',
'skillbox.ru/sale',
'skillbox.ru/media'
];
for (var i = 0; i < externalLinks.length; i++) {
externalLinks[i] = escapeRegExp(externalLinks[i]);
}
var regexp = new RegExp('^http[s]?:\/\/(skillbox\.ru|' + escapeRegExp(window.location.host) + '|' + externalLinks.join('|') + ')\/(?!media/)[a-zA-Z0-9-_/]*');
return !!url.match(regexp);
}
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
}
function redirect() {
document.dispatchEvent(new CustomEvent('articleAdvertBanner', {
detail: {
event: 'click',
id: 226244,
sourceId: 219534,
format: "new_banner"
}
}));
var page = window.location.href;
var $article = $('section[data-article-text]');
var pageId = $article.data('articleid');
if(pageId === undefined)
{
pageId = 0;
}
window.dataLayer.push({
'event': 'go_to_course',
'courseID': 226244,
'page': page,
'pageID': pageId
});
var link = "https://bootcamp.skillbox.ru/it-jobs/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-759_all_code_skillbox";
if(isNeedAddUtm(link)) {
var urlSplit = link.split('?');
var urlBase = urlSplit[0] ? urlSplit[0] : '';
link = urlBase + '?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_banners_scroll_all_all_skillbox';
}
window.location.assign(link);
// var iframe = document.getElementById("test_iframe");
// var src = iframe.src;
// var document_frame = iframe.contentWindow.document.documentElement;
// var body = window.document.body.innerHTML;
// var title = iframe.contentWindow.document.head.title;
//
// window.history.pushState({
// "html": body,
// "pageTitle": title,
// "src": document.location.href
// }, '', src);
// window.addEventListener("popstate", function(e) {
// window.location.href = document.location;
// });
//
// document.documentElement.replaceWith(document_frame);
}
});
});
</script> </section>
<div class="article-banner" data-banner="223362" data-source="219534" data-format="vertical" data-type="vertical">
<div class="row">
<div class="col-sm-4 col-sm-12">
<a data-source="219534" data-banner="223362" href="https://skillbox.ru/course/frontend-developer/" class="inset__wrapper" style="background-color: #f2eeff; display: block; text-decoration: none; color: inherit;" target="_blank">
<div class="inset__content">
<h2 class="inset__header">Курс с помощью в трудоустройстве</h2>
<div class="inset__image" style="text-align: center; margin-bottom:3px">
<img src="https://cdn.skillbox.pro/landgen/blocks/universal-extra-info/298612/lg/da61adec-efa6-4d14-81a2-3244a1c904a7.webp" width="350" height="350" alt="">
</div>
<p class="inset__description" style="color:#000!important; padding-bottom:1px;">
Профессия Фронтенд-разработчик + ИИ
</p>
<p class="inset__text" style="color:#000!important">
Освойте фронтенд без опыта в IT. Практикуйтесь на реальных задачах и находите первых заказчиков в комьюнити Skillbox.
</p>
<div class="inset__button article-advert-banner__link" style="color:#000; background-color:#ffafff; display: inline-block;">Узнать о курсе →</div>
</div>
</a>
</div>
</div>
<br> </div>
<a data-source="219534" data-banner="223363" target="_blank" href="https://skillbox.ru/course/frontend-developer/" class="article-banner article-advert-banner__link courseLink" style="background-color: #E9E9F5;" data-format="top" data-type="top" data-courseid="3522">
<div class="article-banner__img">
<img src="https://cdn.skillbox.pro/landgen/blocks/universal-extra-info/298612/lg/da61adec-efa6-4d14-81a2-3244a1c904a7.webp" alt="">
</div>
<span class="article-banner__title">Курс с трудоустройством: «<u>Профессия Фронтенд-разработчик + ИИ</u>»</span>
<span class="article-banner__link">Узнать о курсе</span>
</a>
<div class="question">
<div class="container">
<div class="question__inner">
<div class="question__title">Понравилась статья?</div>
<a href="#" data-cur-url="/media/code/metody-massivov-v-javascript-obyasnyaem-na-paltsakh-dlya-novichkov/"
class="question__btn js-modalLink" data-mfp-src="#modalAuth">Да</a>
</div>
</div>
</div>
</div>
<span
data-area="article-bottom"
data-current-url="/media/code/metody-massivov-v-javascript-obyasnyaem-na-paltsakh-dlya-novichkov/"
data-id="219534">
</span>
</div>
<script type="application/ld+json">
{"@context":"http:\/\/schema.org","@type":"Article","url":"https:\/\/skillbox.ru\/media\/code\/metody-massivov-v-javascript-obyasnyaem-na-paltsakh-dlya-novichkov\/","headline":"\u041c\u0435\u0442\u043e\u0434\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0432 JavaScript: \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u043c \u043d\u0430\u00a0\u043f\u0430\u043b\u044c\u0446\u0430\u0445 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432","articleSection":"\u041a\u043e\u0434","articleBody":"\u042d\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \r\n\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u0443\u0447\u0430\u044e\u0442 JavaScript \u0438 \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u043a \u043c\u0435\u0442\u043e\u0434\u0430\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445.\r\n\r\n\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0440\u0430\u0437\u0431\u0438\u0442 \u043d\u0430 \u0442\u0440\u0438 \u0447\u0430\u0441\u0442\u0438. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \r\n\u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0443\u0436\u0435 \u0432\u0441\u0451 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u2014 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b.\r\n\r\n\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u043f\u043e \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \r\n\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438. \u0411\u0443\u0434\u0435\u043c \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043b\u0451\u0433\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432.\r\n\r\n\u0412 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0430 \r\n\u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435 \u0442\u0435\u043c\u044b. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0438\u0445 \u0440\u0435\u0448\u0438\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u0432\u0435\u0440\u044c\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b.\r\n\r\n\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\r\n\r\n- \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f [ #stk-1 ] \r\n- \u041c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 [ #stk-2 ] \r\n\r\n- unshift() [ #stk-3 ] \r\n- push() [ #stk-4 ] \r\n- shift() [ #stk-5 ] \r\n- pop() [ #stk-6 ] \r\n- splice() [ #stk-7 ] \r\n\r\n- \u041c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \r\n\u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 [ #stk-8 ] \r\n\r\n- slice() [ #stk-9 ] \r\n- concat() [ #stk-10 ] \r\n- filter() [ #stk-11 ] \r\n- map() [ #stk-12 ] \r\n\r\n- \u041c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0438 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0443 \r\n[ #stk-13 ] \r\n\r\n- forEach() [ #stk-14 ] \r\n- every() [ #stk-15 ] \r\n- some() [ #stk-16 ] \r\n\r\n- \u041c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \r\n\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 [ #stk-17 ] \r\n\r\n- indexOf() [ #stk-18 ] \r\n- lastIndexOf() [ #stk-19 ] \r\n- includes() [ #stk-20 ] \r\n- find() [ #stk-21 ] \r\n\r\n- \u041c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 [ #stk-22 ]\r\n \r\n\r\n- sort() [ #stk-23 ] \r\n- reverse() [ #stk-24 ] \r\n- reduce() [ #stk-25 ] \r\n\r\n- \u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043f\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c [ #stk-26 ] \r\n\r\n- \u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 [ #stk-27 ] \r\n- \u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \r\n[ #stk-28 ] \r\n- \u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434 forEach() [ #stk-29 ] \r\n- \u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u044b every() \u0438 includes() [ #stk-30 ]\r\n \r\n- \u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434 sort() [ #stk-31 ] \r\n- \u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434 reduce() [ #stk-32 ] \r\n\r\n- \u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 [ #stk-33 ] \r\n\r\n\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\r\n\r\n\u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 JavaScript \u0432\u0441\u0442\u0440\u043e\u0435\u043d \u0432 \u043b\u044e\u0431\u043e\u0439 \r\n\u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434.\r\n\r\n\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d Google Chrome, \u0442\u043e \u0441\u043f\u0435\u0440\u0432\u0430 \r\n\u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443. \u041f\u043e\u0441\u043b\u0435 \u043a\u043b\u0438\u043a\u043d\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u043d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u043e\u043c \u043c\u0435\u043d\u044e \u043f\u0443\u043d\u043a\u0442 \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u043e\u0434. \u041f\u0435\u0440\u0435\u0434 \u0432\u0430\u043c\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043e\u043a\u043d\u043e \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u041a\u043e\u043d\u0441\u043e\u043b\u044c.\r\n \r\n\u0412\u043a\u043b\u0430\u0434\u043a\u0430 \u00ab\u041a\u043e\u043d\u0441\u043e\u043b\u044c\u00bb \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 Google Chrome. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043b\u044e\u0431\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0438\u043b\u0438 \u0447\u0438\u0441\u043b\u043e \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 JavaScript \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Google Chrome \/ Skillbox Media\r\n\r\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \r\n\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c JavaScript \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 VS Code .\r\n\r\n\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \r\n\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:\r\n\r\nnode --version\r\n\r\n\u0415\u0441\u043b\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435, \r\n\u0437\u043d\u0430\u0447\u0438\u0442, \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 Node.js \u2014 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f JS-\u043a\u043e\u0434\u0430 \u0432\u043d\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430:\r\n \r\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435, \u0435\u0441\u043b\u0438 \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 Node.js\r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Windows PowerShell \/ Skillbox Media\r\n\r\nNode.js \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \r\n \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443. \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0432\u044b\u0441\u0432\u0435\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u043c\u0435\u0440 \u0432\u0435\u0440\u0441\u0438\u0438.\r\n \r\n\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 Node.js\r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Node.js \/ Skillbox Media\r\n \r\n\u041d\u043e\u043c\u0435\u0440 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Node.js \u043f\u043e\u0441\u043b\u0435 \u0435\u0451 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Windows PowerShell \/ Skillbox Media\r\n\r\n\u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0439\u0442\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b, \u043e\u043d \u043d\u0430\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f. \r\n\u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 VS Code \u2014 \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0435\u0433\u043e, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e.\r\n\r\n\u0412 VS Code \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441 \r\n\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 Code Runner \u2014 \u0443 \u0432\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043a\u043d\u043e\u043f\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u0434\u0430 \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u043e\u043a\u043d\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430.\r\n \r\n\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 Code Runner \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438\u0437 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\u0430 VS Code \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Visual Studio Code \r\n\/ Skillbox Media\r\n\r\n\u041f\u043e\u0447\u0442\u0438 \u0433\u043e\u0442\u043e\u0432\u043e. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043f\u0430\u043f\u043a\u0443, \r\n\u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u0435 \u0432 \u043d\u0435\u0451 \u0444\u0430\u0439\u043b \u0441 \u043b\u044e\u0431\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c .js. \u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u0447\u043d\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 Code Runner \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e JS-\u043a\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0441\u044f \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435:\r\n\r\nconsole.log('\u041f\u0440\u0438\u0432\u0435\u0442, \u043c\u0430\u0441\u0441\u0438\u0432!');\r\n \r\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f JS-\u043a\u043e\u0434\u0430 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 VS Code \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Visual Studio Code \r\n\/ Skillbox Media\r\n\r\n\u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0441\u0451 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \r\n\u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c: \u0432 VS Code \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b. \u0422\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u043e.\r\n\r\n\r\n\r\n \r\n\r\n\r\n\u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0430\u043a\u0436\u0435:\r\n\r\nVisual Studio Code: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430, \u0440\u0443\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \r\n\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0433\u043e\u0440\u044f\u0447\u0438\u0445 \u043a\u043b\u0430\u0432\u0438\u0448. \u0412\u0441\u0451, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u0441\u0430\u043c\u043e\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043a\u043e\u0434\u0430 \u043e\u0442 Microsoft \r\n\r\n\u041c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\r\n\r\n\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0431\u044a\u044f\u0432\u0438\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \r\n\u0432 \u043d\u0435\u0451 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u0444\u0440\u0443\u043a\u0442\u0430\u043c\u0438:\r\n\r\nconst fruits = ['?', '?', '?', '?', '?'];\r\n\r\n\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043d\u0435\u0441\u0451\u043c \u0432\u043e \u0444\u0440\u0443\u043a\u0442\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u0435\u0440\u0432\u0443\u044e \r\n\u0437\u0430\u043f\u0438\u0441\u044c.\r\n\r\n\r\n\r\n \r\n\r\n\r\n\u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0430\u043a\u0436\u0435:\r\n\r\n\u0427\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f var, let \u0438 const \u0432 JavaScript \r\n unshift(): \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \r\n\r\n\u041e\u0431\u0440\u0430\u0442\u0438\u043c\u0441\u044f \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441 \u043d\u0430\u0448\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c, \r\n\u0447\u0435\u0440\u0435\u0437 \u0442\u043e\u0447\u0435\u0447\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0435\u0442\u043e\u0434\u0443 unshift() \u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b:\r\n\r\narray.unshift(element1, ..., elementN)\r\n\r\n\u041d\u043e\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \r\n\u0438 \u0434\u043b\u0438\u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f:\r\n\r\nconst fruits = ['?', '?', '?', '?', '?']; fruits.unshift('\u0421\u043f\u0438\u0441\u043e\u043a \r\n\u043f\u043e\u043a\u0443\u043f\u043e\u043a:'); console.log(fruits); \/\/ '[ \u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043a\u0443\u043f\u043e\u043a:', '?', '?', '?', '?', <'?' ]push(): \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u043a\u043e\u043d\u0435\u0446 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \r\n\r\n\u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c push() \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u043a\u043e\u043d\u0435\u0446 \u043c\u0430\u0441\u0441\u0438\u0432\u0430:\r\n\r\narraypush(element1, ..., elementN)\r\n\r\nconst fruits = ['\u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043a\u0443\u043f\u043e\u043a:', '?', '?', '?', '?', '?']; \r\nfruits.push('\u0418\u0442\u043e\u0433\u043e: 3000 \u0440\u0443\u0431\u043b\u0435\u0439'); console.log(fruits); \/\/ ['\u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043a\u0443\u043f\u043e\u043a:', '?', '?', '?', '?', '?', '\u0418\u0442\u043e\u0433\u043e: 3000 \u0440\u0443\u0431\u043b\u0435\u0439']shift(): \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \r\n\r\n\u041c\u044b \u043f\u0435\u0440\u0435\u0434\u0443\u043c\u0430\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \r\n\u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043d\u043e \u043d\u0435 \u0445\u043e\u0442\u0438\u043c \u0435\u0451 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c. \u0412 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 shift(): \u043e\u043d \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0435\u0433\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u043d\u043e\u0432\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e:\r\n\r\narray.shift()\r\n\r\nconst fruits = ['\u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043a\u0443\u043f\u043e\u043a:', '?', '?', '?', '?', '?', \r\n'\u0418\u0442\u043e\u0433\u043e: 3000 \u0440\u0443\u0431\u043b\u0435\u0439']; const firstElement = fruits.shift(); \/\/ \u041c\u0430\u0441\u0441\u0438\u0432 \u0431\u0435\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 console.log(fruits); \/\/ [ '?', '?', '?', '?', '?', '\u0418\u0442\u043e\u0433\u043e: 3000 \u0440\u0443\u0431\u043b\u0435\u0439' ] \/\/ \u041f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0439 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 console.log(firstElement); \/\/ \u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043a\u0443\u043f\u043e\u043a: pop(): \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u043a\u043e\u043d\u0446\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \r\n\r\n\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 pop() \u0443\u0434\u0430\u043b\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u043a\u043e\u043d\u0446\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e:\r\n\r\narray.pop()\r\n\r\nconst fruits = ['?', '?', '?', '?', '?', '\u0418\u0442\u043e\u0433\u043e: 3000 \u0440\u0443\u0431\u043b\u0435\u0439']; \r\nfruits.pop(); \/\/ \u041c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 console.log(fruits); \/\/ [ '?', '?', '?', '?', '?' ]splice(): \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442, \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0438\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u043b\u044e\u0431\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \r\n\r\n\u041c\u0435\u0442\u043e\u0434 splice() \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \r\n\u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u043e:\r\n\r\narray.splice(start, [deleteCount, item1, item2, ...])\r\n\r\n\u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 \r\n\u043f\u043e \u0447\u0430\u0441\u0442\u044f\u043c, \u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e:\r\n\r\n- start \u2014 \u044d\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \r\n\u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441 \u043a\u043e\u043d\u0446\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430.\r\n- deleteCount \u2014 \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \r\n\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c 0, \u0442\u043e \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f. \u0410 \u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0442\u043e \u043c\u0435\u0442\u043e\u0434 \u0443\u0434\u0430\u043b\u0438\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u043e \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u2014 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u044b \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 start.\r\n- item1, item2, \u2026 \u2014 \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u043e\u0432\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \r\n\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430. \u042d\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e.\r\n\r\n\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \r\n\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u0430 splice().\r\n\r\n\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0443\u0434\u0430\u043b\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \r\n\u0438\u0437 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430:\r\n\r\nconst fruits = ['?', '?', '?', '?', '?']; \/\/ \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \r\n\u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 1 fruits.splice(1, 2); console.log(fruits); \/\/ [ '?', '?', '?' ]\r\n\r\n\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u043d\u043e\u0432\u044b\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \r\n\u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0445:\r\n\r\nconst fruits = ['?', '?', '?']; \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 1 fruits.splice(1, 0, '?', '?'); console.log(fruits); \/\/ [ '?', '?', '?', '?', '?' ]\r\n\r\n\u0417\u0430\u043c\u0435\u043d\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0440\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u043d\u043e\u0432\u044b\u0435:\r\n\r\nconst fruits = ['?', '?', '?', '?', '?']; \/\/ \u041c\u0435\u043d\u044f\u0435\u043c \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \r\n\u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 3 fruits.splice(3, 2, '?', '?'); console.log(fruits); \/\/ [ '?', '?', '?', '?', '?' ]\r\n\r\n\u041e\u0441\u0442\u0430\u0432\u0438\u043c \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0430 \u0444\u0440\u0443\u043a\u0442\u0430, \r\n\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0434\u0430\u043b\u0438\u043c:\r\n\r\nconst fruits = ['?', '?', '?', '?', '?']; \/\/ \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \r\n\u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 2 fruits.splice(2); console.log(fruits); \/\/ [ '?', '?' ]\r\n\r\n\u041c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \r\n\u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445\r\n\r\n\u0412\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u044d\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043d\u043e\u0432\u044b\u0439 \r\n\u043c\u0430\u0441\u0441\u0438\u0432, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u043e\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u0435\u043c\u0441\u044f:\r\n\r\nconst animals = ['?', '?', '?', '?', '?'];slice(): \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \r\n\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \r\n\r\n\u041c\u0435\u0442\u043e\u0434 slice() \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043d\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432:\r\n\r\narray.slice([start, end]);\r\n\r\n\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435:\r\n\r\n- start \u2014 \u044d\u0442\u043e \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \r\n\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0442\u043e \u0432\u0441\u0451 \u043d\u0430\u0447\u043d\u0451\u0442\u0441\u044f \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430.\r\n- end \u2014 \u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441, \u0434\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \r\n\u0431\u0443\u0434\u0443\u0442 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0442\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0442 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430.\r\n\r\n\u0421\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \r\n\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u0442\u0441\u0447\u0451\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0441 \u043a\u043e\u043d\u0446\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430.\r\n\r\nconst animals = ['?', '?', '?', '?', '?']; \/\/ \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \r\n\u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u0434\u0438\u043a\u0438\u0445 \u0436\u0438\u0432\u043e\u0442\u043d\u044b\u0445 const wildAnimals = animals.slice(2, 4); console.log(wildAnimals); \/\/ ['?', '?']concat(): \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \r\n\r\n\u041c\u0435\u0442\u043e\u0434 concat() \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \r\n\u0432 \u043e\u0434\u0438\u043d \u0438 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043d\u0438\u043c \u043b\u044e\u0431\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:\r\n\r\narray.concat (arg1, arg2, ..., argN)\r\n\r\nconst animals = ['?', '?', '?', '?', '?']; const birds = ['?', '?', '?']; \r\n\/\/ \u041c\u0430\u0441\u0441\u0438\u0432 \u0441 \u043f\u0442\u0438\u0446\u0430\u043c\u0438 const fish = ['?', '?', '?']; \/\/ \u041c\u0430\u0441\u0441\u0438\u0432 \u0441 \u0440\u044b\u0431\u0430\u043c\u0438 \/\/ \u041d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u0434\u0432\u0443\u043c\u044f \u0437\u0430\u043f\u0438\u0441\u044f\u043c\u0438 const combinedArray = animals.concat('\u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0442\u0438\u0446 =>', birds, '\u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e \u0440\u044b\u0431 =>', fish); console.log(combinedArray); \/\/ ['?', '?', '?', '?', '?', \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0442\u0438\u0446 =>''?', '?', '?', ;'\u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e \u0440\u044b\u0431 =>''?', '?''?']filter(): \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044e \r\n\r\n\u041c\u0435\u0442\u043e\u0434 filter() \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \r\n\u0438\u0437 \u043d\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0443\u0441\u043b\u043e\u0432\u0438\u044e. \u042d\u0442\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 (\u043a\u043e\u043b\u0431\u044d\u043a-\u0444\u0443\u043d\u043a\u0446\u0438\u0438) . \u0415\u0441\u043b\u0438 \u043d\u0438 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u044e, \u0442\u043e \u043c\u0435\u0442\u043e\u0434 filter() \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u043d\u043e\u0432\u044b\u0439 \u043f\u0443\u0441\u0442\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432:\r\n\r\narray.filter(callback)\r\n\r\nconst animals = ['?', '?', '?', '?', '?']; \/\/ \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437 \u0436\u0438\u0432\u043e\u0442\u043d\u044b\u0445 \r\n\u0442\u043e\u043b\u044c\u043a\u043e \u0445\u0438\u0449\u043d\u0438\u043a\u043e\u0432 const predators = animals.filter(animal => animal === '?' || animal === '?'); console.log(predators); \/\/ ['?', '?']\r\n\r\n\u0410 \u0432\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430:\r\n\r\nconst animals = ['?', '?', '?', '?', '?']; \/\/ \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437 \u0436\u0438\u0432\u043e\u0442\u043d\u044b\u0445 \r\n\u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u043d\u043e\u0432 const elephants = animals.filter(animal => animal === '?'); \/\/ \u0421\u043b\u043e\u043d\u043e\u0432 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u043d\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c console.log(elephants); \/\/ []map(): \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \r\n\r\n\u041c\u0435\u0442\u043e\u0434 map() \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \r\n\u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043c\u0435\u043d\u044f\u0435\u0442 \u0438\u0445 \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043d\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432:\r\n\r\narray.map(callback)\r\n\r\nconst animals = ['?', '?', '?', '?', '?']; \/\/ \u0412\u0430\u043a\u0446\u0438\u043d\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448\u0438\u0445 \r\n\u0436\u0438\u0432\u043e\u0442\u043d\u044b\u0445 const vaccinatedAnimals = animals.map(animal => `${animal}?`); console.log(vaccinatedAnimals); \/\/ ['??', '??', '??', '??', '??']\r\n\r\n\u041c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0438 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0443\r\n\r\n\u041c\u0435\u0442\u043e\u0434\u044b \u044d\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0438 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0442 \r\n\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432. \u041e\u043d\u0438 \u043b\u0438\u0448\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041f\u043e\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u0435\u043c\u0441\u044f \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0445:\r\n\r\nconst vehicles = ['?', '?', '?', '?', '?', '?\ufe0f', '?', '?', '\u2708\ufe0f', \r\n'?'];forEach(): \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \r\n\r\n\u041c\u0435\u0442\u043e\u0434 forEach() \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \r\n\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 . \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 map(), \u043c\u0435\u0442\u043e\u0434 forEach() \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439. \u0422\u043e \u0435\u0441\u0442\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438 \u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u043d\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432. \u042d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 \u0446\u0438\u043a\u043b\u0430 for \u0432 JavaScript \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438.\r\n\r\narray.forEach(callback)\r\n\r\n\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \r\n\u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435. \u041c\u044b \u043f\u043e\u043a\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c, \u0438 \u0432\u043e\u0442 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 forEach():\r\n\r\nconst vehicles = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\ufe0f\", \"?\", \"?\", \"\u2708\ufe0f\", \r\n\"?\"]; vehicles.forEach((vehicle) => console.log(vehicle)); \/* * ? * ? * ? * ? * ? * ?\ufe0f * ? * ? * \u2708\ufe0f * ? *\/\r\n\r\n\u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0434 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0446\u0438\u043a\u043b\u0430 \r\nfor , \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e. \u0415\u0449\u0451 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435: forEach() \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u0445\u043e\u0434\u0438\u0442 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0438 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0410 \u0432\u043e\u0442 \u0446\u0438\u043a\u043b for \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c break . \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u0445 \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c forEach() \u0432\u043c\u0435\u0441\u0442\u043e for.\r\n\r\nconst vehicles = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\ufe0f\", \"?\", \"?\", \"\u2708\ufe0f\", \r\n\"?\"]; for (let i = 0; i < vehicles.length; i++) { console.log(vehicles[i]); } \/* * ? * ? * ? * ? * ? * ?\ufe0f * ? * ? * \u2708\ufe0f * ? *\/every(): \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043b\u0438 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0443\u0441\u043b\u043e\u0432\u0438\u044e\r\n\r\n\u041c\u0435\u0442\u043e\u0434 every() \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \r\n \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0443 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0431\u0443\u043b\u0435\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 true, \u0435\u0441\u043b\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u044e. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u043e \u043d\u0435\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u2014 \u043c\u0435\u0442\u043e\u0434 every() \u0432\u0435\u0440\u043d\u0451\u0442 false:\r\n\r\narray.every(callback)\r\n\r\n\/\/ \u041e\u0431\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 const \r\nvehicles = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\ufe0f\", \"?\", \"?\", \"\u2708\ufe0f\", \"?\"]; \/\/ \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u0430 every. \u041e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e (vehicle) \u043d\u0430\u0437\u0435\u043c\u043d\u044b\u043c const isLandTransport = (vehicle) => { \/\/ \u0421\u043f\u0438\u0441\u043e\u043a \u043d\u0430\u0437\u0435\u043c\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 const landTransports = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\ufe0f\", \"?\", \"?\"]; \/\/ \u0426\u0438\u043a\u043b \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u0432\u0441\u0435\u0445 \u043d\u0430\u0437\u0435\u043c\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 landTransports for (let i = 0; i < landTransports.length; i++) { \/\/ \u0415\u0441\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e (vehicle) \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c \u0438\u0437 landTransports, \u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 true if (vehicle === landTransports[i]) { return true; } } \/\/ \u0415\u0441\u043b\u0438 \u043d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u043d\u0430\u0437\u0435\u043c\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 vehicle, \u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 false return false; }; \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 every \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 vehicles const allLandTransport = vehicles.every(isLandTransport); console.log(allLandTransport); \/\/ \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 false, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0435\u0441\u0442\u044c \u2708\ufe0f \u0441\u0430\u043c\u043e\u043b\u0451\u0442 \u0438 ? \u043a\u043e\u0440\u0430\u0431\u043b\u044csome(): \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\r\n\r\n\u041c\u0435\u0442\u043e\u0434 some() \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \r\ntrue, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u044e. \u0415\u0441\u043b\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u043d\u0435\u0442 \u2014 \u043c\u0435\u0442\u043e\u0434 \u0432\u0435\u0440\u043d\u0451\u0442 false. \u0415\u0449\u0451 \u0432\u0430\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u0435\u0442\u043e\u0434 some() \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u2014 \u0438\u0449\u0435\u0442 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442:\r\n\r\narray.some(callback)\r\n\r\nconst vehicles = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\ufe0f\", \"?\", \"?\", \"\u2708\ufe0f\", \r\n\"?\"]; \/\/ \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u0430 some(). \u041e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e (vehicle) \u0432\u043e\u0437\u0434\u0443\u0448\u043d\u044b\u043c const isAirTransport = (vehicle) => { const airTransports = [\"\u2708\ufe0f\", \"?\", \"?\"]; return airTransports.some((transport) => transport === vehicle); }; \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 some() \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u0434\u0443\u0448\u043d\u043e\u0433\u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0433\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 vehicles const hasAirTransport = vehicles.some(isAirTransport); console.log(hasAirTransport); \/\/ true, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0435\u0441\u0442\u044c \u2708\ufe0f \u0441\u0430\u043c\u043e\u043b\u0451\u0442\r\n\r\n\u041c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \r\n\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435\r\n\r\n\u042d\u0442\u0430 \u0433\u0440\u0443\u043f\u043f\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0435\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441 \u0438\u043b\u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043e\u043d \u0435\u0441\u0442\u044c \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435. \u041f\u043e\u0442\u0440\u0435\u043d\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u0438\u0441\u043a\u0430\u0442\u044c \u0441\u043f\u043e\u0440\u0442\u0438\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u044c:\r\n\r\nconst sportsEquipment = [\"\u26bd\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"];indexOf(): \r\n\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u0438\u0441\u043a\u043e\u043c\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \r\n\r\n\u041c\u0435\u0442\u043e\u0434 indexOf \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430: \u0438\u0441\u043a\u043e\u043c\u044b\u0439 \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0438\u0441\u043a. \u0415\u0441\u043b\u0438 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0442\u043e indexOf \u0432\u0435\u0440\u043d\u0451\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u043c\u0435\u0442\u043e\u0434 \u0432\u0435\u0440\u043d\u0451\u0442 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c -1:\r\n\r\narray.indexOf(searchElement, [fromIndex])\r\n\r\n\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430:\r\n\r\n- searchElement \u2014 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \r\n\u043d\u0430\u0439\u0442\u0438 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435.\r\n- fromIndex \u2014 \u043d\u043e\u043c\u0435\u0440 \u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \r\n\u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0438\u0441\u043a. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0442\u043e \u043f\u043e\u0438\u0441\u043a \u043d\u0430\u0447\u043d\u0451\u0442\u0441\u044f \u0441 \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430.\r\n\r\n\u041d\u0430\u0439\u0434\u0451\u043c \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0431\u0430\u0441\u043a\u0435\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u044f\u0447\u0430:\r\n\r\nconst sportsEquipment = [\"\u26bd\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; \r\n\/\/ \u0412\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0441 \u043d\u0430\u0447\u0430\u043b\u0430 const basketballIndex = sportsEquipment.indexOf(\"?\"); console.log(basketballIndex); \/\/ 1\r\n\r\n\u041f\u043e\u0438\u0449\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0430\u0441\u043a\u0435\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u044f\u0447\u0430:\r\n\r\nconst sportsEquipment = [\"\u26bd\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; \r\n\/\/ \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0441 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 const nextBasketballIndex = sportsEquipment.indexOf(\"?\", 3); console.log(nextBasketballIndex); \/\/ 4\r\n\r\n\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043e\u0442\u044b\u0441\u043a\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \r\n\u043d\u0435\u0442 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435:\r\n\r\nconst sportsEquipment = [\"\u26bd\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; \r\nconst tennisBallIndex = sportsEquipment.indexOf(\"?\"); console.log(tennisBallIndex); \/\/ -1lastIndexOf(): \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u0438\u0441\u043a\u043e\u043c\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u0441 \u043a\u043e\u043d\u0446\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \r\n\r\n\u041c\u0435\u0442\u043e\u0434 lastIndexOf() \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u0430\u043a \u0436\u0435, \r\n\u043a\u0430\u043a \u0438 \u043c\u0435\u0442\u043e\u0434 indexOf(). \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e lastIndexOf() \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441 \u043a\u043e\u043d\u0446\u0430 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435:\r\n\r\narray.lastIndexOf(searchElement, [fromIndex])\r\n\r\n\u0420\u0430\u0437\u044b\u0449\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0431\u0430\u0441\u043a\u0435\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \r\n\u043c\u044f\u0447\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435:\r\n\r\nconst sportsEquipment = [\"\u26bd\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; \r\nconst lastBasketballIndex = sportsEquipment.lastIndexOf(\"?\"); console.log(lastBasketballIndex); \/\/ 8\r\n\r\n\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043a \u043c\u0435\u0442\u043e\u0434\u0443 lastIndexOf() \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \r\n\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:\r\n\r\nconst sportsEquipment = [\"\u26bd\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; \r\n\/\/ \u041d\u0430\u0439\u0434\u0451\u043c \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0435\u043d\u043d\u0438\u0441\u043d\u043e\u0439 \u0440\u0430\u043a\u0435\u0442\u043a\u0438 (?), \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 2 const lastTennisRacketIndex = sportsEquipment.lastIndexOf(\"?\", 2); console.log(lastTennisRacketIndex); \/\/ -1, \u0434\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 2 \"?\" \u043d\u0435\u0442 \/\/ \u041c\u0435\u0442\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u043d\u0443\u043b\u0435\u0432\u043e\u0439, \u043f\u0435\u0440\u0432\u044b\u0439 \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441: \"\u26bd\", \"?\", \"?\"\r\n\r\n\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442, \u0447\u0442\u043e\u0431\u044b \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e\u043f\u0430\u043b \u0432 \u0432\u044b\u0431\u043e\u0440\u043a\u0443:\r\n\r\nconst sportsEquipment = [\"\u26bd\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; \r\n\/\/ \u041d\u0430\u0439\u0434\u0451\u043c \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0435\u043d\u043d\u0438\u0441\u043d\u043e\u0439 \u0440\u0430\u043a\u0435\u0442\u043a\u0438 (?) \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 3 const lastTennisRacketIndex = sportsEquipment.lastIndexOf(\"?\", 3); console.log(lastTennisRacketIndex); \/\/ 3includes(): \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \r\n\r\n\u041c\u0435\u0442\u043e\u0434 includes() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0431\u0443\u043b\u0435\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \r\n true \u0438\u043b\u0438 false. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u043d\u0443\u0436\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0438\u043b\u0438 \u0436\u0435 \u043d\u0435\u0442. \u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434 \u043d\u0430\u0447\u043d\u0451\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443:\r\n\r\narray.includes(searchElement, [fromIndex])\r\n\r\nconst sportsEquipment = [\"\u26bd\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; \r\n\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0431\u0430\u0441\u043a\u0435\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0439 \u043c\u044f\u0447 (?) const hasBasketball = sportsEquipment.includes(\"?\"); console.log(hasBasketball); \/\/ true \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0442\u0435\u043d\u043d\u0438\u0441\u043d\u044b\u0439 \u043c\u044f\u0447 (?) const hasTennisBall = sportsEquipment.includes(\"?\"); console.log(hasTennisBall); \/\/ false \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0431\u0430\u0441\u043a\u0435\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0439 \u043c\u044f\u0447 (?), \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 4-\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 const hasBasketballFromIndex = sportsEquipment.includes(\"?\", 4); console.log(hasBasketballFromIndex); \/\/ truefind(): \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u044e \u043f\u043e\u0438\u0441\u043a\u0430 \r\n\r\n\u041c\u0435\u0442\u043e\u0434 find() \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \r\n\u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 , \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0439\u0434\u0435\u043d, \u0442\u043e find() \u0435\u0433\u043e \u0432\u0435\u0440\u043d\u0451\u0442. \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u043b\u0438 \u043d\u0438 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u044e, \u0442\u043e \u0432\u0435\u0440\u043d\u0451\u0442\u0441\u044f undefined (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e):\r\n\r\narray.find(callback)\r\n\r\n\u041f\u043e\u0438\u0449\u0435\u043c \u0432\u043e\u043b\u0435\u0439\u0431\u043e\u043b\u044c\u043d\u044b\u0439 \u043c\u044f\u0447:\r\n\r\nconst sportsEquipment = [\"\u26bd\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; \r\nconst firstVolleyball = sportsEquipment.find((equipment) => equipment === \"?\"); console.log(firstVolleyball); \/\/ ?\r\n\r\n\u0423\u0441\u043b\u043e\u0436\u043d\u0438\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0438 \u043f\u043e\u0438\u0449\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u043a\u0440\u043e\u043c\u0435 \r\n\u043c\u044f\u0447\u0430:\r\n\r\nconst sportsEquipment = [\"\u26bd\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; \r\nconst firstNonBall = sportsEquipment.find((equipment) => ![\"\u26bd\", \"?\", \"?\", \"?\"].includes(equipment)); console.log(firstNonBall); \/\/ ?\r\n\r\n\u041c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432\r\n\r\n\u042d\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \r\n\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0435\u0434\u0438\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u041f\u043e\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0441 \u0432\u0440\u0435\u0434\u043d\u044b\u043c \u0444\u0430\u0441\u0442\u0444\u0443\u0434\u043e\u043c:\r\n\r\nconst foods = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"];sort(): \r\n\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \r\n\r\n\u041c\u0435\u0442\u043e\u0434 sort() \u0431\u0435\u0440\u0451\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \r\n\u0435\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f.\r\n\r\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c \r\n\u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u2014 \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0438. \u0415\u0441\u043b\u0438 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0431\u0443\u0434\u0443\u0442 \u0447\u0438\u0441\u043b\u0430, \u0442\u043e \u043c\u0435\u0442\u043e\u0434 sort() \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0438\u0445 \u0432 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043f\u043e \u043a\u043e\u0434\u0430\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 Unicode [ https:\/\/ru.wikipedia.org\/wiki\/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4 ] . \u042d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0438 \u0441 \u044d\u043c\u043e\u0434\u0437\u0438.\r\n\r\n\u0412 \u043d\u0430\u0448\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0435\u0441\u0442\u044c \u0431\u0443\u0440\u0433\u0435\u0440 \u0438 \u043f\u0438\u0446\u0446\u0430:\r\n\r\n- U+1F354 \u2014 \u044e\u043d\u0438\u043a\u043e\u0434 \u0431\u0443\u0440\u0433\u0435\u0440\u0430 ?\r\n- U+1F355 \u2014 \u044e\u043d\u0438\u043a\u043e\u0434 \u043f\u0438\u0446\u0446\u044b ?\r\n\r\n\u0423 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0431\u0443\u0440\u0433\u0435\u0440\u0430 \u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u044e\u043d\u0438\u043a\u043e\u0434, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \r\n\u0432 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434 \u043f\u0438\u0446\u0446\u0435\u0439. \u0422\u0430\u043a \u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438 \u0441 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u044d\u043c\u043e\u0434\u0437\u0438:\r\n\r\nconst foods = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; \/\/ \u0421\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \r\n\u043c\u0430\u0441\u0441\u0438\u0432 foods \u0432 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 foods.sort(); console.log(foods); \/\/ ['?', '?', '?', '?', '?', '?', '?', '?', '?', '?'] \/** ? \u2014 \u0425\u043e\u0442-\u0434\u043e\u0433 \u2014 U+1F32D ? \u2014 \u0422\u0430\u043a\u043e \u2014 U+1F32E ? \u2014 \u0413\u0430\u043c\u0431\u0443\u0440\u0433\u0435\u0440 \u2014 U+1F354 ? \u2014 \u041a\u0443\u0441\u043e\u043a \u043f\u0438\u0446\u0446\u044b \u2014 U+1F355 ? \u2014 \u041a\u0430\u0440\u0442\u043e\u0444\u0435\u043b\u044c \u0444\u0440\u0438 \u2014 U+1F35F ? \u2014 \u0421\u043f\u0430\u0433\u0435\u0442\u0442\u0438 \u2014 U+1F35D ? \u2014 \u0421\u0443\u0448\u0438 \u2014 U+1F363 ? \u2014 \u041a\u0443\u0441\u043e\u043a \u0442\u043e\u0440\u0442\u0430 \u2014 U+1F370 ? \u2014 \u0417\u0435\u043b\u0451\u043d\u044b\u0439 \u0441\u0430\u043b\u0430\u0442 \u2014 U+1F957 ? \u2014 \u0421\u044d\u043d\u0434\u0432\u0438\u0447 \u2014 U+1F96A *\/\r\n\r\n\u041c\u0435\u0442\u043e\u0434 sort() \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \r\n\u043f\u043e \u043b\u044e\u0431\u043e\u043c\u0443 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e \u0434\u043b\u0438\u043d\u0435 \u0441\u0442\u0440\u043e\u043a\u0438: \u043e\u0442 \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043a \u0431\u043e\u043b\u044c\u0448\u0435\u0439. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d\u044b \u0441\u0442\u0440\u043e\u043a. \u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043c \u044d\u043c\u043e\u0434\u0437\u0438 \u0432 \u0442\u0435\u043a\u0441\u0442 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438:\r\n\r\nconst foods = [\"\u041f\u0438\u0446\u0446\u0430\", \"\u0413\u0430\u043c\u0431\u0443\u0440\u0433\u0435\u0440\", \"\u0425\u043e\u0442-\u0434\u043e\u0433\", \"\u041a\u0430\u0440\u0442\u043e\u0444\u0435\u043b\u044c \r\n\u0444\u0440\u0438\", \"\u0421\u0430\u043b\u0430\u0442\", \"\u0421\u0443\u0448\u0438\", \"\u0421\u043f\u0430\u0433\u0435\u0442\u0442\u0438\", \"\u0422\u0430\u043a\u043e\", \"\u0421\u044d\u043d\u0434\u0432\u0438\u0447\", \"\u0422\u043e\u0440\u0442\"]; \/\/ \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d\u044b \u0441\u0442\u0440\u043e\u043a\u0438 const getStringLength = (str) => { return str.length; }; \/\/ \u0421\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e \u0434\u043b\u0438\u043d\u0435 \u0441\u0442\u0440\u043e\u043a foods.sort((a, b) => { return getStringLength(a) - getStringLength(b); }); console.log(foods); \/** [ '\u0421\u0443\u0448\u0438', '\u0422\u0430\u043a\u043e', '\u0422\u043e\u0440\u0442', '\u041f\u0438\u0446\u0446\u0430', '\u0421\u0430\u043b\u0430\u0442', '\u0425\u043e\u0442-\u0434\u043e\u0433', '\u0421\u044d\u043d\u0434\u0432\u0438\u0447', '\u0421\u043f\u0430\u0433\u0435\u0442\u0442\u0438', '\u0413\u0430\u043c\u0431\u0443\u0440\u0433\u0435\u0440', '\u041a\u0430\u0440\u0442\u043e\u0444\u0435\u043b\u044c \u0444\u0440\u0438' ] *\/reverse(): \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432, \u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\r\n\r\n\u041c\u0435\u0442\u043e\u0434 reverse() \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \r\n\u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435: \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c, \u043f\u0435\u0440\u0432\u044b\u0439 \u2014 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.\r\n\r\narray.reverse()\r\n\r\nconst foods = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; foods.reverse(); \r\nconsole.log(foods); \/\/ ['?', '?', '?', '?', '?', '?', '?', '?', '?', '?']\r\n\r\n\u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u0435 \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0442\u043e \u0438\u043c \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043a\u0443\u0441\u043e\u043a \u0442\u043e\u0440\u0442\u0430, \u0430 \u043d\u0435 \u043f\u0438\u0446\u0446\u0430. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f:\r\n\r\nconst foods = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\"]; foods.reverse(); \r\nconsole.log(foods[0]); \/\/ ?reduce(): \u0441\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u0435\u0434\u0438\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \r\n\r\n\u041c\u0435\u0442\u043e\u0434 reduce() \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \r\n\u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043e\u0431\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u0441\u0443\u043c\u043c\u0430 \u0447\u0438\u0441\u0435\u043b \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.\r\n\r\n\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e \u0448\u0430\u0433\u0430\u043c:\r\n\r\n- \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.\r\n- \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \r\n\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e.\r\n- \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \r\n\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.\r\n- \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \r\n\u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e.\r\n- \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f, \u043f\u043e\u043a\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0451\u0442 \r\n\u043f\u043e \u0432\u0441\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c.\r\n\r\n\u041c\u0435\u0442\u043e\u0434 reduce() \u0441\u0430\u043c\u044b\u0439 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \r\n\u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043b\u0435\u0435 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u044d\u043c\u043e\u0434\u0437\u0438 \u043c\u044b \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u0447\u0438\u0441\u0435\u043b. \u0422\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0449\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f:\r\n\r\nconst numbers = [1, 2, 3, 4, 5]; \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 reduce() \r\n\u0434\u043b\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u0443\u043c\u043c\u044b \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 const sum = numbers.reduce((accumulator, currentValue) => { \/\/ \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (currentValue) \u043a \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 (accumulator) return accumulator + currentValue; }, 0); \/\/ \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 0 console.log(sum); \/\/ 15\r\n\r\n\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u0435\u0442\u043e\u0434\u0430 reduce() \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \r\n\u044d\u0442\u0430\u043f\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438:\r\n\r\n \u041d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\r\naccumulator \u0422\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 currentValue \u0421\u0443\u043c\u043c\u0430\r\nsum \r\n\u041f\u0435\u0440\u0432\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f 0 1 1 \r\n\u0412\u0442\u043e\u0440\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f 1 2 3 \r\n\u0422\u0440\u0435\u0442\u044c\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f 3 3 6 \r\n\u0427\u0435\u0442\u0432\u0451\u0440\u0442\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f 6 4 10 \r\n\u041f\u044f\u0442\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f 10 5 15 \r\n\r\n\r\n\u0410 \u0432\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 \r\nreduce():\r\n\r\narray.reduce(callback, [initialValue]);\r\n\r\n- callback \u2014 \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \r\n\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u041e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0447\u0435\u0442\u044b\u0440\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430:\r\n\r\n- accumulator \u2014 \u044d\u0442\u043e \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \r\n\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.\r\n- currentValue \u2014 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \r\n\u043c\u0430\u0441\u0441\u0438\u0432\u0430.\r\n- currentIndex \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0435\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 initialValue.\r\n- array \u2014 \u044d\u0442\u043e \u0441\u0430\u043c \u043c\u0430\u0441\u0441\u0438\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \r\n\u043c\u0435\u0442\u043e\u0434 reduce(). \u042d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0435\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u043d\u043e initialValue.\r\n\r\n- initialValue \u2014 \u044d\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430, \r\n\u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043e, \u0442\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438 \u043f\u0435\u0440\u0435\u0431\u043e\u0440 \u0438\u0434\u0451\u0442 \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.\r\n\r\n\u041d\u0438\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043b\u0443\u0447\u0448\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \r\n\u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 reduce(). \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0435\u0433\u043e \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438:\r\n\r\nconst numbers = [1, 2, 3, 4, 5]; \/\/ \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 reduce() \r\n\u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u043a\u0430\u0436\u0434\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 const result = numbers.reduce((accumulator, currentValue, currentIndex, array) => { \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 console.log(`\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f ${currentIndex}:`); console.log(` \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442: ${currentValue}`); console.log(` \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441: ${currentIndex}`); console.log(` \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432: [${array.join(', ')}]`); console.log(` \u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0434\u043e: ${accumulator}`); \/\/ \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0451 \u043a \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 accumulator += `\u042d\u043b\u0435\u043c\u0435\u043d\u0442 ${currentIndex + 1}: ${currentValue}\\n`; console.log(` \u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0441\u043b\u0435: ${accumulator}\\n`); \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u044b\u0439 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 return accumulator; }, ''); \/\/ \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u2014 \u043f\u0443\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \/\/ \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 console.log('\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:\\n' + result); \/* \u041e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438: \u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 0: \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442: 1 \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441: 0 \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432: [1, 2, 3, 4, 5] \u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0434\u043e: \u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0441\u043b\u0435: \u042d\u043b\u0435\u043c\u0435\u043d\u0442 1: 1 \u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 1: \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442: 2 \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441: 1 \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432: [1, 2, 3, 4, 5] \u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0434\u043e: \u042d\u043b\u0435\u043c\u0435\u043d\u0442 1: 1 \u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0441\u043b\u0435: \u042d\u043b\u0435\u043c\u0435\u043d\u0442 1: 1 \u042d\u043b\u0435\u043c\u0435\u043d\u0442 2: 2 *\/\r\n\r\n\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043f\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\r\n\r\n\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438 \u0432\u0430\u0436\u043d\u0430 \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \r\n\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0432\u0440\u043e\u0434\u0435 React . \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0435\u043c \u0447\u0430\u0449\u0435 \u0432\u044b \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u0435\u0442\u0435\u0441\u044c, \u0442\u0435\u043c \u0433\u043b\u0443\u0431\u0436\u0435 \u043f\u043e\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0435\u0441\u044c \u0432 \u0442\u0435\u043c\u0443. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0438 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435.\u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \r\n\r\n\u041f\u0435\u0440\u0435\u0434 \u0432\u0430\u043c\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043a\u0443\u043f\u043e\u043a: ?, ?, ?, ?, ?, ?. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \r\n\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u043c\u0430\u0441\u0441\u0438\u0432, \u0430 \u0437\u0430\u0442\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043d\u043e\u0432\u043e\u043c\u0443 \u043e\u0432\u043e\u0449\u0443 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u0441\u043f\u0438\u0441\u043a\u0430. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0435\u0449\u0451 \u043e\u0432\u043e\u0449\u0435\u0439 \u0438 \u0443\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u0441\u0435 \u0444\u0440\u0443\u043a\u0442\u044b.\r\n\r\n\u0420\u0435\u0448\u0435\u043d\u0438\u0435\r\n\r\n\r\n\/\/ \u0428\u0430\u0433 1: \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u0442\u0440\u0435\u043c\u044f \u043e\u0432\u043e\u0449\u0430\u043c\u0438 \u0438 \r\n\u0442\u0440\u0435\u043c\u044f \u0444\u0440\u0443\u043a\u0442\u0430\u043c\u0438 const groceryList = ['?', '?', '?', '?', '?', '?']; \/\/ \u0428\u0430\u0433 2: \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043e\u0432\u043e\u0449\u0443 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 groceryList.unshift('?'); \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0440\u043e\u043a\u043a\u043e\u043b\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e groceryList.push('?'); \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0430\u043a\u043b\u0430\u0436\u0430\u043d \u0432 \u043a\u043e\u043d\u0435\u0446 \/\/ \u0428\u0430\u0433 3: \u0417\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0442\u0440\u0438 \u0444\u0440\u0443\u043a\u0442\u0430 \u043d\u0430 \u043e\u0432\u043e\u0449\u0438 groceryList.splice(4, 3, '?', '?', '?\ufe0f'); \/\/ \u0417\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u044f\u0431\u043b\u043e\u043a\u043e, \u0431\u0430\u043d\u0430\u043d \u0438 \u0432\u0438\u043d\u043e\u0433\u0440\u0430\u0434 \u043d\u0430 \u043a\u0430\u0440\u0442\u043e\u0444\u0435\u043b\u044c, \u043f\u043e\u043c\u0438\u0434\u043e\u0440 \u0438 \u043f\u0435\u0440\u0435\u0446 \/\/ \u041d\u0430\u0448 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043e\u0432\u043e\u0449\u043d\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 console.log(groceryList); \/\/ ['?', '?', '?', '?', '?', '?', '?\ufe0f', '?'] \u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0438\u0445\r\n\r\n\u0412 \u0442\u0440\u0451\u0445 \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \r\n\u0432\u0438\u0434\u044b \u0436\u0438\u0432\u043e\u0442\u043d\u044b\u0445:\r\n\r\n- \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0435: ? \u0431\u0443\u0440\u0443\u043d\u0434\u0443\u043a, ?\ufe0f \u0431\u0435\u043b\u043a\u0430, \r\n? \u043b\u0435\u0432, ??? \u0442\u0440\u0438 \u043e\u0440\u043b\u0430, ? \u043e\u0431\u0435\u0437\u044c\u044f\u043d\u0430, ? \u0437\u043c\u0435\u044f, ? \u0441\u043e\u0432\u0430, ? \u0441\u043b\u043e\u043d, ? \u0447\u0435\u0440\u0435\u043f\u0430\u0445\u0430, ? \u043c\u0435\u0434\u0432\u0435\u0434\u044c.\r\n- \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0435: ? \u043f\u0430\u043d\u0434\u0430, ? \u043a\u043e\u0430\u043b\u0430, \r\n? \u0443\u0442\u043a\u0430, ? \u0436\u0438\u0440\u0430\u0444, ??? \u0442\u0440\u0438 \u043f\u043e\u043f\u0443\u0433\u0430\u044f, ? \u043e\u0440\u0451\u043b, ? \u0442\u0438\u0433\u0440, ? \u043f\u0438\u043d\u0433\u0432\u0438\u043d, ? \u043e\u0441\u044c\u043c\u0438\u043d\u043e\u0433, ? \u0431\u0430\u0431\u043e\u0447\u043a\u0430, ? \u0451\u0436.\r\n- \u0412 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0435: ? \u043b\u044f\u0433\u0443\u0448\u043a\u0430, ? \u043e\u0431\u0435\u0437\u044c\u044f\u043d\u0430, \r\n?? \u0434\u0432\u0430 \u043e\u0440\u043b\u0430, ??? \u0442\u0440\u0438 \u043f\u043e\u043f\u0443\u0433\u0430\u044f, ? \u0436\u0438\u0440\u0430\u0444, ? \u0437\u043c\u0435\u044f, ? \u0447\u0435\u0440\u0435\u043f\u0430\u0445\u0430, ? \u043b\u0438\u0441\u0430.\r\n\r\n\u041f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u0435 \u0436\u0438\u0432\u043e\u0442\u043d\u044b\u0445 \u0438\u0437 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0430 \r\n\u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432: zoo1, zoo2 \u0438 zoo3. \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u0442\u0440\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u043e\u0434\u0438\u043d \u043e\u0431\u0449\u0438\u0439 \u2014 allAnimals.\r\n\r\n\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u0437 \u043e\u0431\u0449\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 allAnimals \u0432\u0441\u0435\u0445 \r\n? \u043e\u0440\u043b\u043e\u0432 \u0438 ? \u043f\u043e\u043f\u0443\u0433\u0430\u0435\u0432. \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0438\u0445 \u0432 \u043d\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 eaglesParrots. \u041e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043e\u0440\u043b\u043e\u0432 \u0438 \u043f\u043e\u043f\u0443\u0433\u0430\u0435\u0432 \u0432 \u0432\u0435\u0442\u043a\u043b\u0438\u043d\u0438\u043a\u0443 ? \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043d\u043e\u0432\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 treatedAnimals.\r\n\r\n\u0420\u0435\u0448\u0435\u043d\u0438\u0435\r\n\r\n\r\n\/\/ \u041f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0436\u0438\u0432\u043e\u0442\u043d\u044b\u0445 \u0438\u0437 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0430 \r\n\u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 const zoo1 = ['?', '?\ufe0f', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?']; const zoo2 = ['?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?']; const zoo3 = ['?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?']; \/\/ \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u0442\u0440\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u043e\u0434\u0438\u043d \u043e\u0431\u0449\u0438\u0439 const allAnimals = zoo1.concat(zoo2, zoo3); \/\/ \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437 \u043e\u0431\u0449\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u0441\u0435\u0445 \u043e\u0440\u043b\u043e\u0432 \u0438 \u043f\u043e\u043f\u0443\u0433\u0430\u0435\u0432 const eaglesParrots = allAnimals.filter(animal => animal === '?' || animal === '?'); \/\/ \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0440\u043b\u043e\u0432 \u0438 \u043f\u043e\u043f\u0443\u0433\u0430\u0435\u0432 \u0432 \u0432\u0435\u0442\u043a\u043b\u0438\u043d\u0438\u043a\u0443 ? const treatedAnimals = eaglesParrots.map(animal => `${animal}?`); console.log(treatedAnimals); \/\/ ['??', '??', '??', >'??', '??', '??', '??', <'??', '??', '??', '??', '??']\u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434 forEach()\r\n\r\n\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u043c\u0438 \r\n\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438:\r\n\r\nconst vehicles = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\ufe0f\", \"?\", \"?\", \"\u2708\ufe0f\", \r\n\"?\"];\r\n\r\n\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \r\n\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432 \u0442\u0430\u043a\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435:\r\n\r\n\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e <\u0438\u043d\u0434\u0435\u043a\u0441>: <\u0441\u0438\u043c\u0432\u043e\u043b>\r\n\r\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0432\u043e\u0434\u0430:\r\n\r\n\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 1: ? \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \r\n\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 2: ? \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 3: ? ...\r\n\r\n\u0420\u0435\u0448\u0435\u043d\u0438\u0435\r\n\r\n\r\nconst vehicles = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\ufe0f\", \"?\", \"?\", \"\u2708\ufe0f\", \r\n\"?\"]; \/\/ \u041f\u0438\u0448\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435 const displayVehicleInfo = (vehicle, index) => { \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \"\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e <\u0438\u043d\u0434\u0435\u043a\u0441>: <\u0441\u0438\u043c\u0432\u043e\u043b>\" console.log(`\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e ${index + 1}: ${vehicle}`); }; \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 forEach \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 displayVehicleInfo \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 vehicles.forEach((vehicle, index) => { displayVehicleInfo(vehicle, index); }); \/** \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 1: ? \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 2: ? \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 3: ? \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 4: ? \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 5: ? \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 6: ?\ufe0f \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 7: ? \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 8: ? \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 9: \u2708\ufe0f \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e 10: ? *\/\u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u044b every() \u0438 includes()\r\n\r\n\u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043f\u0440\u043e \u043c\u0435\u0442\u043e\u0434 every() \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \r\n\u0446\u0438\u043a\u043b for \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u0432\u0441\u0435\u0445 \u043d\u0430\u0437\u0435\u043c\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432. \u041f\u0435\u0440\u0435\u043f\u0438\u0448\u0438\u0442\u0435 \u043a\u043e\u0434, \u0447\u0442\u043e\u0431\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0446\u0438\u043a\u043b\u0430 \u0432 \u0442\u0435\u043b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043c\u0435\u0442\u043e\u0434 includes(). \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:\r\n\r\nconst vehicles = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\ufe0f\", \"?\", \"?\", \"\u2708\ufe0f\", \r\n\"?\"]; const isLandTransport = (vehicle) => { const landTransports = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\ufe0f\", \"?\", \"?\"]; for (let i = 0; i < landTransports.length; i++) { if (vehicle === landTransports[i]) { return true; } } return false; }; const allLandTransport = vehicles.every(isLandTransport); console.log(allLandTransport); \/\/ false, \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0435\u0441\u0442\u044c \u2708\ufe0f \u0438 ?\r\n\r\n\u0420\u0435\u0448\u0435\u043d\u0438\u0435\r\n\r\n\r\nconst vehicles = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\ufe0f\", \"?\", \"?\", \"\u2708\ufe0f\", \r\n\"?\"]; const isLandTransport = (vehicle) => { const landTransports = [\"?\", \"?\", \"?\", \"?\", \"?\", \"?\ufe0f\", \"?\", \"?\"]; \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0432\u0445\u043e\u0434\u0438\u0442 \u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430\u0437\u0435\u043c\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 return landTransports.includes(vehicle); }; const allLandTransport = vehicles.every(isLandTransport); console.log(allLandTransport); \/\/ false, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0435\u0441\u0442\u044c \u2708\ufe0f \u0438 ?\u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434 sort()\r\n\r\n\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u0431\u043b\u044e\u0434\u0430\u043c\u0438. \u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \r\n\u0435\u0433\u043e \u043f\u043e \u0434\u043b\u0438\u043d\u0435 \u0441\u0442\u0440\u043e\u043a: \u043e\u0442 \u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0431\u043b\u044e\u0434 \u043a \u0431\u043e\u043b\u044c\u0448\u0435\u043c\u0443. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0432\u0435\u0434\u0438\u0442\u0435 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c:\r\n\r\nconst foodDescriptions = [ \"\u0421\u0430\u043b\u0430\u0442 \u0426\u0435\u0437\u0430\u0440\u044c\", \"\u041f\u0430\u0441\u0442\u0430 \u0411\u043e\u043b\u043e\u043d\u044c\u0435\u0437\u0435\", \r\n\"\u0420\u043e\u043b\u043b \u0424\u0438\u043b\u0430\u0434\u0435\u043b\u044c\u0444\u0438\u044f\", \"\u0421\u0443\u043f \u0422\u043e\u043c \u042f\u043c\", \"\u0421\u0442\u0435\u0439\u043a \u041c\u0435\u0434\u0438\u0443\u043c\", \"\u041f\u0438\u0446\u0446\u0430 \u041c\u0430\u0440\u0433\u0430\u0440\u0438\u0442\u0430\", \"\u0427\u0438\u0437\u043a\u0435\u0439\u043a \u041d\u044c\u044e-\u0419\u043e\u0440\u043a\", \"\u0425\u043e\u0442-\u0434\u043e\u0433 \u0441 \u0441\u044b\u0440\u043e\u043c\", \"\u0421\u0443\u0448\u0438 \u0424\u0438\u043b\u0430\u0434\u0435\u043b\u044c\u0444\u0438\u044f\", \"\u0424\u0440\u0443\u043a\u0442\u043e\u0432\u044b\u0439 \u0441\u0430\u043b\u0430\u0442\", ];\r\n\r\n\u0420\u0435\u0448\u0435\u043d\u0438\u0435\r\n\r\n\r\nconst foodDescriptions = [ \"\u0421\u0430\u043b\u0430\u0442 \u0426\u0435\u0437\u0430\u0440\u044c\", \"\u041f\u0430\u0441\u0442\u0430 \u0411\u043e\u043b\u043e\u043d\u044c\u0435\u0437\u0435\", \r\n\"\u0420\u043e\u043b\u043b \u0424\u0438\u043b\u0430\u0434\u0435\u043b\u044c\u0444\u0438\u044f\", \"\u0421\u0443\u043f \u0422\u043e\u043c \u042f\u043c\", \"\u0421\u0442\u0435\u0439\u043a \u041c\u0435\u0434\u0438\u0443\u043c\", \"\u041f\u0438\u0446\u0446\u0430 \u041c\u0430\u0440\u0433\u0430\u0440\u0438\u0442\u0430\", \"\u0427\u0438\u0437\u043a\u0435\u0439\u043a \u041d\u044c\u044e-\u0419\u043e\u0440\u043a\", \"\u0425\u043e\u0442-\u0434\u043e\u0433 \u0441 \u0441\u044b\u0440\u043e\u043c\", \"\u0421\u0443\u0448\u0438 \u0424\u0438\u043b\u0430\u0434\u0435\u043b\u044c\u0444\u0438\u044f\", \"\u0424\u0440\u0443\u043a\u0442\u043e\u0432\u044b\u0439 \u0441\u0430\u043b\u0430\u0442\", ]; \/\/ \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d\u044b \u0441\u0442\u0440\u043e\u043a\u0438 const getStringLength = (str) => { return str.length; }; \/\/ \u0421\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e \u0434\u043b\u0438\u043d\u0435 \u0441\u0442\u0440\u043e\u043a \u043e\u0442 \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043a \u0431\u043e\u043b\u044c\u0448\u0435\u0439 foodDescriptions.sort((a, b) => { return getStringLength(a) - getStringLength(b); }); console.log(foodDescriptions); \/** [ '\u0421\u0443\u043f \u0422\u043e\u043c \u042f\u043c', '\u0421\u0430\u043b\u0430\u0442 \u0426\u0435\u0437\u0430\u0440\u044c', '\u0421\u0442\u0435\u0439\u043a \u041c\u0435\u0434\u0438\u0443\u043c', '\u041f\u0430\u0441\u0442\u0430 \u0411\u043e\u043b\u043e\u043d\u044c\u0435\u0437\u0435', '\u041f\u0438\u0446\u0446\u0430 \u041c\u0430\u0440\u0433\u0430\u0440\u0438\u0442\u0430', '\u0425\u043e\u0442-\u0434\u043e\u0433 \u0441 \u0441\u044b\u0440\u043e\u043c', '\u0424\u0440\u0443\u043a\u0442\u043e\u0432\u044b\u0439 \u0441\u0430\u043b\u0430\u0442', '\u0420\u043e\u043b\u043b \u0424\u0438\u043b\u0430\u0434\u0435\u043b\u044c\u0444\u0438\u044f', '\u0427\u0438\u0437\u043a\u0435\u0439\u043a \u041d\u044c\u044e-\u0419\u043e\u0440\u043a', '\u0421\u0443\u0448\u0438 \u0424\u0438\u043b\u0430\u0434\u0435\u043b\u044c\u0444\u0438\u044f' ] *\/\u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434 reduce()\r\n\r\n\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u043e\u043a \u0441 \u0444\u0440\u0443\u043a\u0442\u0430\u043c\u0438. \r\n\u041f\u043e\u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0443\u043a\u0432:\r\n\r\nconst fruits = [\"\u044f\u0431\u043b\u043e\u043a\u043e\", \"\u0431\u0430\u043d\u0430\u043d\", \"\u043a\u0438\u0432\u0438\", \"\u043c\u0430\u043d\u0433\u043e\", \r\n\"\u0433\u0440\u0443\u0448\u0430\"];\r\n\r\n\u0420\u0435\u0448\u0435\u043d\u0438\u0435\r\n\r\n\r\nconst fruits = [\"\u044f\u0431\u043b\u043e\u043a\u043e\", \"\u0431\u0430\u043d\u0430\u043d\", \"\u043a\u0438\u0432\u0438\", \"\u043c\u0430\u043d\u0433\u043e\", \r\n\"\u0433\u0440\u0443\u0448\u0430\"]; const totalLetters = fruits.reduce((accumulator, currentValue) => { \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u043b\u0438\u043d\u0443 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 return accumulator + currentValue.length; }, 0); \/\/ \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 0 console.log(totalLetters); \/\/ 25\r\n\r\n\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435\r\n\r\n\u0412\u044b \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \r\n\u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0432 JavaScript \u0438 \u0438\u0445 \u0431\u0430\u0437\u043e\u0432\u044b\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c. \u0414\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0441\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0432\u0435\u0431-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 MDN Web Docs \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Mozilla.\r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n\r\n\u0411\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e \u043a\u043e\u0434 \u2014 \u0432 \u043d\u0430\u0448\u0435\u043c \r\n\u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c-\u043a\u0430\u043d\u0430\u043b\u0435 . \u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c!\r\n\r\n\r\n\r\n\r\n\r\n\u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0430\u043a\u0436\u0435:\r\n\r\n- \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438 \u043a\u0430\u043a \u043e\u043d \u0443\u0441\u0442\u0440\u043e\u0435\u043d \r\n \r\n- \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 JavaScript \u0438 \u0437\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0443\u0436\u0435\u043d \r\n \r\n- JavaScript: \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 frontend-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \r\n[ https:\/\/skillbox.ru\/media\/code\/javascript_glavnyy_instrument_frontend\/?utm_source=media&utm_medium=link&utm_campaign=all_all_media_links_links_articles_all_all_skillbox ] \r\n- \u0427\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u0435\u0437 JavaScript [ https:\/\/skillbox.ru\/media\/code\/chto_nelzya_sdelat_bez_javascript\/?utm_source=media&utm_medium=link&utm_campaign=all_all_media_links_links_articles_all_all_skillbox ]\r\n \r\n- 6 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u0438 IDE \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 JavaScript \r\n \r\n- TypeScript: \u043a\u0430\u043a \u0441 \u043d\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0447\u0435\u043c \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \r\n\u043e\u0442 JavaScript \r\n\r\n\r\n\r\n\r\n\u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \r\n\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 JavaScript-\u043a\u043e\u0434. \u041e\u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0432\u0430\u0448 \u043a\u043e\u0434 \u043d\u0430 \u044f\u0437\u044b\u043a, \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u043c\u0438.","author":{"@type":"Person","name":"\u0420\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u00ab\u041a\u043e\u0434\u00bb Skillbox\u00a0Media","url":"https:\/\/skillbox.ru\/media\/authors\/code-skillbox-media\/"},"publisher":{"@type":"Organization","name":"Skillbox","logo":{"@type":"ImageObject","url":"https:\/\/skillbox.ru\/static\/images\/skillbox.png"}},"mainEntityOfPage":{"@type":"WebPage","url":"https:\/\/skillbox.ru\/media\/code\/metody-massivov-v-javascript-obyasnyaem-na-paltsakh-dlya-novichkov\/"},"datePublished":"2024-06-19T07:11:00Z","dateModified":"2025-06-24T15:35:45Z","image":{"@type":"ImageObject","url":["https:\/\/248006.selcdn.ru\/main\/iblock\/d7e\/d7e5951cbf961cd7f344644a57b00c31\/71455c8a3764afb6ffb7247998e71021.png"]},"description":"\u041f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c, \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c, \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438 \u0432\u0441\u044f\u043a\u043e\u0435."}
</script><script data-skip-moving="true" id="FiMjZmipVK5U4ODg">if (window.relap) window.relap.ar('FiMjZmipVK5U4ODg');</script> </div>
<script>
window.Section_id = 10;
</script>
</div>
</main>
<footer class="without-buttons">
<div class="footer__wrapper container">
<div class="footer__firstgroup">
<section class="footer__contactbox">
<address class="footer__contacts">
<p class="footer__contacts-block">
<a class="footer__phone link" href="tel:+74951540915">8 (800) 500-05-22</a>
<span class="footer__phone-caption">Контактный центр</span>
</p>
<p class="footer__contacts-block">
<a class="footer__phone link" href="tel:+74952915987">+7(495) 291-59-87</a>
<span class="footer__phone-caption">Отдел заботы о пользователях</span>
</p>
<p class="footer__address"> Москва, Ленинский проспект, дом 6, строение 20</p>
</address>
<ul class="social-contacts footer__social">
<li>
<a class="social-contacts__item" href="https://vk.com/skillbox_education"
aria-label="Вконтакте">
<img src="/static/images/footer/soc_vk.svg"/>
</a>
</li>
<li>
<a class="social-contacts__item"
href="https://www.youtube.com/channel/UC2FJq-Rr7v4SlKAoM7x0ZhA" aria-label="YouTube">
<img src="/static/images/footer/soc_tube.svg"/>
</a>
</li>
<li>
<a class="social-contacts__item" href="tg://resolve?domain=skillboxru"
aria-label="Telegram">
<img src="/static/images/footer/soc_tg.svg"/>
</a>
</li>
</ul>
<div class="footer__age-limit">
16+
</div>
</section>
<section class="footer__rewardbox">
<ul class="rewards footer__rewards">
<li>
<span class="rewards__item">
<img src="/static/images/footer/footer_runet.svg" alt=""/>
<span>Премии Рунета</span>
<span>2018, 2019, 2020</span>
</span>
</li>
</ul>
</section>
</div>
<section class="footer__linksbox">
<ul class="links__list links__list--courses">
<li class="links__item links__item--header">Все направления</li>
<li class="links__item"><a href="/code/?utm_source=media&utm_medium=button&utm_campaign=footerlink_code&utm_term=footer">Программирование</a></li>
<li class="links__item"><a href="/design/?utm_source=media&utm_medium=button&utm_campaign=footerlink_design&utm_term=footer">Дизайн</a></li>
<li class="links__item"><a href="/marketing/?utm_source=media&utm_medium=button&utm_campaign=footerlink_marketing&utm_term=footer">Маркетинг</a></li>
<li class="links__item"><a href="/management/?utm_source=media&utm_medium=button&utm_campaign=footerlink_management&utm_term=footer">Управление</a></li>
<li class="links__item"><a href="/games/?utm_source=media&utm_medium=button&utm_campaign=footerlink_gamedev&utm_term=footer">Игры</a></li>
<li class="links__item"><a href="/multimedia/?utm_source=media&utm_medium=button&utm_campaign=footerlink_multimedia&utm_term=footer">Мультимедиа</a></li>
<li class="links__item"><a href="/psychology/?utm_source=media&utm_medium=button&utm_campaign=footerlink_psychology&utm_term=footer">Психология</a></li>
<li class="links__item"><a href="/general-development/?utm_source=media&utm_medium=button&utm_campaign=footerlink_general-development&utm_term=footer">Общее развитие</a></li>
<li class="links__item"><a href="/engineering/?utm_source=media&utm_medium=button&utm_campaign=footerlink_engineering&utm_term=footer">Инженерия</a></li>
<li class="links__item"><a href="/english/?utm_source=media&utm_medium=button&utm_campaign=footerlink_english&utm_term=footer">Английский язык</a></li>
<li class="links__item"><a href="/other/?utm_source=media&utm_medium=button&utm_campaign=footerlink_other&utm_term=footer">Другое</a></li>
</ul>
<ul class="links__list links__list--about">
<li class="links__item links__item--header">О Skillbox</li>
<li class="links__item"><a href="/company/?utm_source=media&utm_medium=button&utm_campaign=footerlink_aboutskillbox&utm_term=footer">О Платформе</a></li>
<li class="links__item"><a href="/career/?utm_source=media&utm_medium=button&utm_campaign=footerlink_careercentr&utm_term=footer"> Центр карьеры</a></li>
<li class="links__item"><a href="/otzyvy/?utm_source=media&utm_medium=button&utm_campaign=footerlink_testimonials&utm_term=footer">Отзывы</a></li>
<li class="links__item"><a href="/contacts/?utm_source=media&utm_medium=button&utm_campaign=footerlink_skillboxcontacts&utm_term=footer">Контакты</a></li>
<li class="links__item"><a href="/jobs/?utm_source=media&utm_medium=button&utm_campaign=footerlink_jobs&utm_term=footer">Вакансии</a></li>
<li class="links__item"><a href="/teachers/?utm_source=media&utm_medium=button&utm_campaign=footerlink_school&utm_term=footer">Школа кураторов</a></li>
<li class="links__item"><a href="/sale/free/?utm_source=media&utm_medium=button&utm_campaign=footerlink_free&utm_term=footer">Бесплатно</a></li>
<li class="links__item"><a href="/media/topic/tests/?utm_source=media&utm_medium=button&utm_campaign=footerlink_tests&utm_term=footer">Онлайн-тесты</a></li>
</ul>
<ul class="links__list links__list--webinar">
<li class="links__item links__item--header">Вебинары</li>
<li class="links__item"><a href="https://live.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_webinars&utm_term=footer" target="_blank" rel="noopener">Все вебинары</a></li>
<li class="links__item"><a href="https://live.skillbox.ru/playlists/?utm_source=media&utm_medium=button&utm_campaign=footerlink_playlists&utm_term=footer" target="_blank" rel="noopener">Плейлисты</a></li>
<li class="links__item"><a href="https://live.skillbox.ru/calendar/?utm_source=media&utm_medium=button&utm_campaign=footerlink_schedule&utm_term=footer" target="_blank" rel="noopener">Расписание</a></li>
</ul>
<ul class="links__list links__list--last">
<li class="links__item links__journal"><a href="/media/" target="_blank" rel="noopener">Медиа</a></li>
<li class="links__item"><a href="https://partners.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_partners&utm_term=footer" target="_blank" rel="noopener">Партнерская программа</a></li>
<li class="links__item"><a href="https://b2b.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_b2b&utm_term=footer" target="_blank" rel="noopener">Корпоративным клиентам</a></li>
<li class="links__item"><a href="https://career.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_employees&utm_term=footer" target="_blank" rel="noopener">Для работодателей</a></li>
</ul>
</section>
</div>
<div class="footer__underline container">
<span class="footer__copy">
© Skillbox, 2026 </span>
<div>
<span class="footer__oferta">
<a href="/oferta.pdf" target="_blank">Договор оферты</a>
</span>
<span class="footer__payment">
<a href="/payments/" target="_blank">Оплата</a>
</span>
<span class="footer__use-policy">
<a href="/terms_of_use.pdf" target="_blank">Правила пользования Платформой</a>
<a href="/privacy_policy.pdf" target="_blank">Политика конфиденциальности</a>
</span>
</div>
</div>
</footer>
<div class="cookies">
<p class="cookies__desc">
Пользуясь нашим сайтом, вы соглашаетесь с тем, что
<a href="https://skillbox.ru/privacy_policy.pdf" target="_blank" rel="noopener"
type="application/pdf">мы используем cookies</a> 🍪
</p>
<button type="button" class="cookies__button">
Окей
</button>
</div>
<div class="subscribe-popup subscribe">
<div class="subscribe-popup__spacer-mobile"></div>
<div class="subscribe-popup__row-content ">
<button class="subscribe__close"></button>
<div class="subscribe__content">
<div data-subscribe-popup-success class="hidden">
<h2 class="subscribe__header-success">Спасибо за подписку! Забирайте 5 бесплатных курсов:</h2>
<ul class="subscribe__list-block">
<li>Найти себя в IT за 5 дней</li>
<li>Как найти себя в дизайне в 2025 году</li>
<li>Интерьеры, мебель, ландшафт и декорирование</li>
<li>Интернет-маркетинг на практике</li>
<li>Бизнес-аналитик, продакт- и проджект-менеджер</li>
</ul>
<div class="subscribe__btns-el">
<a
target="_blank"
href="https://refer.id/?bot=skillbox_main_bot&platform=telegram&verbose_name=Skillbox&bot_avatar=https://designer.ftrcdn.com/uploads/bot_avatars/medium_54ab1ce8c393eb3df1474846ce0a0e2c.png&n=137050&c=9209&bc_number=890&?utm_source=media&utm_medium=&utm_campaign=all_all_media_banners_invite_sbornik-890_all_bot_skillbox"
class="subscribe__el-btn">Получить доступ</a>
</div>
</div>
<div data-subscribe-popup-content>
<h2 class="subscribe__header">У нас есть классные рассылки!</h2>
<form action="/media/code/metody-massivov-v-javascript-obyasnyaem-na-paltsakh-dlya-novichkov/" class="newsletter-form page-subscription__form3" data-type="popup">
<input type="hidden" name="action" value="subscribe">
<div class="subscribe__checkboxes"></div>
<div class="subscribe__email email_popup">
<input class="subscribe-form__input" type="text" name="email" placeholder="Email" >
<span class="subscribe-form__label-name">Электронная почта</span>
<button type="submit" class="popup-btn-click">Подписаться</button>
<span class="email__error">Поле необходимо заполнить</span>
</div>
<div class="subscribe-popup__checkbox-end">
<div class="subscribe-popup__checkbox-item" data-checkbox-personal-data>
<div class="subscribe__checkbox">
<input type="checkbox" name="agreements[PERS]" id="isCheckTrue" value="1" data-checkbox-personal-data-input>
<label for="isCheckTrue"><span>Я согласен на <a target="_blank" href="https://skillbox.ru/legal-docs/chou/file/privacy_policy/version-290425.pdf">обработку персональных данных</a></span></label>
</div>
<span class="email__error">Нужно ваше согласие</span>
</div>
<div class="subscribe__bottom">
<span>Нажимая на кнопку, я соглашаюсь с <a target="_blank" href="https://skillbox.ru/legal-docs/skillbox/file/terms_of_use/version-300824.pdf">правилами пользования Платформой</a></span>
</div>
<div class="subscribe-popup__checkbox-item" data-checkbox-personal-data-two>
<div class="subscribe__checkbox subscribe__checkbox--end" >
<input type="checkbox" name="agreements[ADS]" id="isAdsCalls" value="1" checked="" data-checkbox-personal-data-input-two>
<label for="isAdsCalls">Я согласен <a target="_blank" href="https://skillbox.ru/legal-docs/chou/file/soglasie-na-poluchenie-reklamy.pdf">получать рекламу и звонки</a></label>
</div>
<span class="email__error">Нужно ваше согласие</span>
</div>
</div>
</form>
</div>
</div>
</div>
<!-- src="/static/images/articles/subscribe-popup-img.png" -->
</div>
<div class="bg-modal-overlay bg-modal-overlay--transparent"></div>
<script data-skip-moving="true" id="popup__data--formatted">
$(".popup-btn-click").on("click" , function (){
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
let input = $(this).closest(".subscribe__email").find(".subscribe-form__input");
let inputValue = input.val();
if(emailPattern.test(inputValue)) {
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { rrApi.setEmail(inputValue);});
}
});
/*
window.popupData = {
"8": {
header: 'У нас есть классные рассылки про дизайн!!!',
category: 'Дизайн',
checkboxes: [
'Лучшие статьи про Дизайн',
'«Типографика без боли»'
]
},
"10": {
header: 'У нас есть классные рассылки про код',
category: 'Код',
checkboxes: [
'Лучшие статьи про Код и Людей кода',
'«Жизнь без багов»'
]
},
"18": {
category: 'Геймдев',
checkboxes: []
},
"21": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Бизнес',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"9": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Маркетинг',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"11": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Управление',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"17": {
category: 'Развитие',
checkboxes: []
},
"22": {
header: 'У нас есть классные рассылки про образование',
category: 'Образование',
checkboxes: [
'Лучшие статьи про Образование',
'«EdTech по полочкам»',
'«Мой успешный онлайн-курс»'
]
},
}
*/
window.popupData = {"header":"\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 - \u043d\u0430 \u043f\u043e\u0447\u0442\u0443!\u003Cbr\/\u003E\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u043c\u0443 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438\u003Cbr\/\u003E\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 5 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u043a\u0443\u0440\u0441\u043e\u0432:","category":"\u041a\u043e\u0434","checkboxes":{"23":"\u041c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442","24":"\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433","26":"\u041a\u043e\u0440\u043f. \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435","13":"\u0414\u0438\u0437\u0430\u0439\u043d","16":"\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","15":"\u041e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","17":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u0433\u0440","18":"\u041f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f, \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e"},"code":"code","scroll":true};
window.subscribePopupShow = 1;
</script>
<div class="copied">
<img src="/static/images/articles/done-circle.svg" alt="" class="copied__icon">
<p class="copied__text">
Ссылка скопирована
</p>
</div>
<!-- <style>@font-face{font-display:swap;font-family:Graphik;font-weight:500;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Graphik;font-weight:700;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Bold.woff2) format("woff2")}.universal-notice{box-sizing:border-box;text-decoration:none;display:none;min-height:48px;color:var(--banner-color);background-color:var(--banner-bg);overflow:hidden;font-family:Graphik,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:opacity .25s ease-in-out;transition:opacity .25s ease-in-out}.universal-notice *{box-sizing:inherit}.universal-notice.universal-notice--active{display:block}.universal-notice--bitrix{z-index:1000}.universal-notice__wrapper{position:relative;-webkit-box-pack:start;justify-content:flex-start;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-left:12px;padding:4px 0}.universal-notice__title{position:relative;flex-shrink:0;width:132px;margin-right:27px;font-size:14px;line-height:20px;text-transform:uppercase}.universal-notice__timer{display:none;margin:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.universal-notice__button{flex-shrink:0;min-width:120px;padding:8px 12px;border-radius:25px;font-weight:500;font-size:12px;line-height:16px;color:#3925b7;text-align:center;text-transform:uppercase;background-color:#ffa6a6}@media (min-width:768px){.universal-notice{min-height:72px}.universal-notice__wrapper{-webkit-box-pack:center;justify-content:center;height:72px;margin:0}.universal-notice__title{width:252px;margin-right:32px;margin-left:20px;font-size:24px;line-height:32px}.universal-notice__button{min-width:200px;margin-right:20px;padding:14px 36px;font-size:16px;line-height:20px}}@media (min-width:768px) and (max-width:0px){.universal-notice{min-height:72px}.universal-notice__wrapper{-webkit-box-pack:center;justify-content:center;height:72px;margin:0}.universal-notice__title{width:252px;margin-right:32px;margin-left:20px;font-size:24px;line-height:32px}.universal-notice__button{min-width:200px;margin-right:20px;padding:14px 36px;font-size:16px;line-height:20px}}@media (min-width:1280px) and (max-width:0px){.universal-notice__wrapper{padding:0}.universal-notice__title{width:unset;margin-right:76px}.universal-notice__timer{flex-shrink:0;margin-right:32px;font-weight:700;font-size:24px;line-height:32px}.universal-notice__timer.js-universal-notice-active{display:-webkit-box;display:flex}.universal-notice__days{margin-right:5px}}@media (min-width:1280px){.universal-notice__wrapper{padding:0}.universal-notice__title{width:unset;margin-right:76px}.universal-notice__timer{flex-shrink:0;margin-right:32px;font-weight:700;font-size:24px;line-height:32px}.universal-notice__timer.js-universal-notice-active{display:-webkit-box;display:flex}.universal-notice__days{margin-right:5px}}</style>-->
</body>
</html>