Массивы
Массивы в JavaScript - это объекты, которые используются для хранения упорядоченных коллекций значений. Массивы могут содержать любые типы данных, включая другие массивы.
Создание массива
Массивы в JavaScript могут быть созданы с помощью литералов массива или конструктора Array().
const fruits = ["Apple", "Banana", "Cherry"];
const numbers = new Array(1, 2, 3, 4, 5);
Доступ к элементам массива
Доступ к элеме нтам массива осуществляется по индексу. Индексация начинается с нуля.
const fruits = ["Apple", "Banana", "Cherry"];
console.log(fruits[0]); // Apple
console.log(fruits[1]); // Banana
console.log(fruits[2]); // Cherry
Длина массива
Свойство length массива возвращает количество элементов в массиве.
const fruits = ["Apple", "Banana", "Cherry"];
console.log(fruits.length); // 3
Методы массива
concat
concat() - объединяет два или более массивов и возвращает новый массив.
const fruits = ["Apple", "Banana"];
const vegetables = ["Carrot", "Potato"];
const food = fruits.concat(vegetables);
console.log(food); // ["Apple", "Banana", "Carrot", "Potato"]
join,split
join() - объединяет все элементы массива в строку с разделителем. separator - строка, которая будет использоваться в качестве разделителя, по умолчанию запятая.
const fruits = ["Apple", "Banana", "Cherry"];
const result = fruits.join();
console.log(result); // "Apple,Banana,Cherry"
const resultWithSeparator = fruits.join(" | ");
console.log(resultWithSeparator); // "Apple | Banana | Cherry"
split() - разбивает строку на массив подстрок. separator - строка, по которой будет производиться разбиение, по умолчанию запятая.
const fruits = "Apple, Banana, Cherry";
const result = fruits.split(", ");
console.log(result); // ["Apple", "Banana", "Cherry"]
push,pop
push() - добавляет один или более элементов в конец массива и возвращает новую длину массива.
const fruits = ["Apple", "Banana"];
const newLength = fruits.push("Cherry");
console.log(fruits); // ["Apple", "Banana", "Cherry"]
console.log(newLength); // 3
pop() - удаляет последний элемент из массива и возвращает его.
const fruits = ["Apple", "Banana", "Cherry"];
const lastFruit = fruits.pop();
console.log(fruits); // ["Apple", "Banana"]
console.log(lastFruit); // "Cherry"
shift,unshift
shift() - удаляет первый элемент из массива и возвращает его.
const fruits = ["Apple", "Banana", "Cherry"];
const firstFruit = fruits.shift();
console.log(fruits); // ["Banana", "Cherry"]
console.log(firstFruit); // "Apple"
unshift() - добавляет один или более элементов в начало массива и возвращает новую длину массива.
const fruits = ["Apple", "Banana"];
const newLength = fruits.unshift("Cherry");
console.log(fruits); // ["Cherry", "Apple", "Banana"]
console.log(newLength); // 3
slice,splice
slice() - возвращает часть массива в виде нового массива. start - индекс начала, end - индекс конца (не включительно).
const fruits = ["Apple", "Banana", "Cherry", "Date"];
const result = fruits.slice(1, 3);
console.log(result); // ["Banana", "Cherry"]
console.log(fruits); // ["Apple", "Banana", "Cherry", "Date"]
splice() - изменяет содержимое массива, удаляя существующие элементы и/или добавляя новые элементы. start - индекс начала, deleteCount - количество удаляемых элементов, item1, item2, ... - элементы, которые будут добавлены.
const fruits = ["Apple", "Banana", "Cherry", "Date"];
const result = fruits.splice(1, 2, "Grape", "Kiwi");
console.log(result); // ["Banana", "Cherry"]
console.log(fruits); // ["Apple", "Grape", "Kiwi", "Date"]
const fruits = ["Apple", "Banana", "Cherry", "Date"];
const result = fruits.splice(2, 1);
console.log(result); // ["Cherry"]
console.log(fruits); // ["Apple", "Banana", "Date"]
reverse
reverse() - изменяет порядок элементов массива на обратный.
const fruits = ["Apple", "Banana", "Cherry"];
fruits.reverse();
console.log(fruits); // ["Cherry", "Banana", "Apple"]
sort
sort() - сортирует элементы массива. По умолчанию сортировка происходит в алфавитном порядке, но можно передать функцию сравнения для определения порядка сортировки.
const fruits = ["Banana", "Apple", "Cherry"];
fruits.sort();
console.log(fruits); // ["Apple", "Banana", "Cherry"]
const numbers = [40, 100, 1, 5, 25, 10];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 5, 10, 25, 40, 100]
indexOf,lastIndexOf
indexOf() - возвращает индекс первого вхождения элемента в массиве. Если элемент не найден, возвращает -1.
const fruits = ["Apple", "Banana", "Cherry"];
const index = fruits.indexOf("Banana");
console.log(index); // 1
lastIndexOf() - возвращает индекс последнего вхождения элемента в массиве. Если элемент не найден, возвращает -1.
const fruits = ["Apple", "Banana", "Cherry", "Banana"];
const index = fruits.lastIndexOf("Banana");
console.log(index); // 3
forEach,map
forEach() - выполняет указанную функцию один раз для каждого элемента массива.
const fruits = ["Apple", "Banana", "Cherry"];
fruits.forEach((fruit, index) => {
console.log(fruit, index);
});
map() - создает новый массив с результатами вызова указанной функции для каждого элемента массива.
const numbers = [1, 2, 3, 4, 5];
const result = numbers.map((number) => number * 2);
console.log(result); // [2, 4, 6, 8, 10]
find,findIndex,filter
find() - возвращает первый элемент массива, удовлетворяющий условию, заданному в функции. Если элемент не найден, возвращает undefined.
const numbers = [1, 2, 3, 4, 5];
const result = numbers.find((number) => number > 3);
console.log(result); // 4
findIndex() - возвращает индекс первого элемента массива, удовлетворяющего условию, заданному в функции. Если элемент не найден, возвращает -1.
const numbers = [1, 2, 3, 4, 5];
const index = numbers.findIndex((number) => number > 3);
console.log(index); // 3
filter() - создает новый массив со всеми элементами, прошедшими проверку, заданную в функции.
const numbers = [1, 2, 3, 4, 5];
const result = numbers.filter((number) => number % 2 === 0);
console.log(result); // [2, 4]
every,some,includes
every() - проверяет, удовлетворяют ли все элементы массива условие, заданное в функции. Возвращает true или false.
const numbers = [1, 2, 3, 4, 5];
const result = numbers.every((number) => number > 0);
console.log(result); // true
some() - проверяет, удовлетворяет ли хотя бы один элемент массива условие, заданное в функции. Возвращает true или false.
const numbers = [1, 2, 3, 4, 5];
const result = numbers.some((number) => number > 5);
console.log(result); // false
includes() - проверяет, содержит ли массив указанный элемент. Возвращает true или false.
const fruits = ["Apple", "Banana", "Cherry"];
const result = fruits.includes("Banana");
console.log(result); // true
reduce,reduceRight
reduce() - применяет функцию к аккумулятору и каждому значению массива (слева направо), чтобы свести его к одному значению.
const numbers = [1, 2, 3, 4, 5];
const result = numbers.reduce(
(accumulator, currentValue) => accumulator + currentValue,
0
);
console.log(result); // 15
reduceRight() - применяет функцию к аккумулятору и каждому значению массива (справа налево), чтобы свести его к одному значению.
const numbers = [1, 2, 3, 4, 5];
const result = numbers.reduceRight(
(accumulator, currentValue) => accumulator + currentValue,
0
);
console.log(result); // 15
fill
fill() - заполняет все элементы массива статическим значением. value - значение, которым заполняются элементы, start - индекс начала, end - индекс конца (не включительно).
const numbers = [1, 2, 3, 4, 5];
numbers.fill(0, 1, 4);
console.log(numbers); // [1, 0, 0, 0, 5]
flat,flatMap
flat() - создает новый массив, в котором все подмассивы внутри исходного массива объединены в один уровень. depth - глубина вложенности, по умолчанию 1.
const numbers = [1, [2, 3], [4, [5]]];
const result = numbers.flat();
console.log(result); // [1, 2, 3, 4, [5]]
flatMap() - создает новый массив, в котором все подмассивы внутри исходного массива объединены в один уровень, а затем применяет к каждому элементу функцию и объединяет результаты в новый массив.
const numbers = [1, 2, 3];
const result = numbers.flatMap((number) => [number, number * 2]);
console.log(result); // [1, 2, 2, 4, 3, 6]
isArray
isArray() - проверяет, является ли переданный аргумент массивом. Возвращает true или false.
const fruits = ["Apple", "Banana", "Cherry"];
const result = Array.isArray(fruits);
console.log(result); // true
Массив как ссылочный тип данных
PASS
Поверхностное и глубокое копирование
PASS
Поверхностное копирование
PASS
Глубокое копирование
PASS