Skip to main content

Массивы

Массивы в 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