JavaScript & TypeScriptМодуль 4: Массивы и объекты
Дополнительные методы
flat, includes, indexOf, slice и другие
Цель урока
В этом уроке ты научишься:
- Проверять наличие элементов
- Извлекать части массива
- Работать с вложенными массивами
Проверка наличия
includes
let fruits = ["яблоко", "банан", "апельсин"];
console.log(fruits.includes("банан")); // true
console.log(fruits.includes("груша")); // false
// С позиции
console.log(fruits.includes("яблоко", 1)); // falseindexOf и lastIndexOf
let fruits = ["яблоко", "банан", "яблоко", "апельсин"];
console.log(fruits.indexOf("яблоко")); // 0
console.log(fruits.lastIndexOf("яблоко")); // 2
console.log(fruits.indexOf("груша")); // -1Извлечение части
slice
Не изменяет исходный массив:
let fruits = ["яблоко", "банан", "апельсин", "киви"];
console.log(fruits.slice(1, 3)); // ["банан", "апельсин"]
console.log(fruits.slice(2)); // ["апельсин", "киви"]
console.log(fruits.slice(-2)); // ["апельсин", "киви"]
console.log(fruits.slice()); // копия массиваОбъединение
concat
let arr1 = [1, 2];
let arr2 = [3, 4];
let arr3 = [5, 6];
let combined = arr1.concat(arr2, arr3);
console.log(combined); // [1, 2, 3, 4, 5, 6]
// С отдельными элементами
let result = arr1.concat(3, 4);
console.log(result); // [1, 2, 3, 4]Преобразование в строку
join
let fruits = ["яблоко", "банан", "апельсин"];
console.log(fruits.join(", ")); // "яблоко, банан, апельсин"
console.log(fruits.join(" - ")); // "яблоко - банан - апельсин"
console.log(fruits.join("")); // "яблокобананапельсин"Плоские массивы
flat
let nested = [1, [2, 3], [4, [5, 6]]];
console.log(nested.flat()); // [1, 2, 3, 4, [5, 6]]
console.log(nested.flat(2)); // [1, 2, 3, 4, 5, 6]
console.log(nested.flat(Infinity)); // полностью плоскийflatMap
let sentences = ["Привет мир", "Как дела"];
let words = sentences.flatMap(s => s.split(" "));
console.log(words); // ["Привет", "мир", "Как", "дела"]Создание массивов
Array.from
// Из строки
console.log(Array.from("abc")); // ["a", "b", "c"]
// Из Set
let set = new Set([1, 2, 3]);
console.log(Array.from(set)); // [1, 2, 3]
// С функцией
console.log(Array.from({ length: 5 }, (_, i) => i * 2));
// [0, 2, 4, 6, 8]Array.of
console.log(Array.of(1, 2, 3)); // [1, 2, 3]
console.log(Array.of(5)); // [5]
// Сравни с new Array
console.log(new Array(5)); // [empty × 5]Практика
Задание 1: Проверка
Задача: Проверь, есть ли число 5 в массиве.
Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
true
Задание 2: Копирование
Задача: Скопируй первые 3 элемента массива.
Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
["a","b","c"]
Задание 3: Выравнивание
Задача: Преобразуй вложенный массив в плоский.
Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
[1,2,3,4,5,6]
Проверь себя
- Чем
sliceотличается отsplice? - Что вернёт
indexOf, если элемент не найден? - Как создать массив чисел от 1 до 10?