Манипуляции с массивами: понимание методов массивов в JavaScript

Манипуляции с массивами: понимание методов массивов в JavaScript

9 января 2023 г.

Что такое массивы в JavaScript? Массивы JavaScript — это типы данных, которые могут хранить набор элементов. Эти элементы могут иметь любой тип данных, включая числа, строки и объекты. Массивы в JavaScript являются динамическими, что означает, что вы можете добавлять или удалять элементы из них после их создания.

В этом руководстве мы рассмотрим все методы работы с массивами в JavaScript и их практическое применение.

Типы методов массива

Существует несколько методов работы с массивами JavaScript. Вот некоторые из этих методов:

1. конкат()

Этот метод используется для объединения двух или более массивов. Он не изменяет исходные массивы, а вместо этого возвращает новый массив, содержащий элементы исходных массивов.

Вот пример использования `concat()` в JavaScript:

const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
const array3 = [7, 8, 9];

const mergedArray = array1.concat(array2, array3);
// mergedArray is [1, 2, 3, 4, 5, 6, 7, 8, 9]

В приведенном выше примере массив1, массив2 и массив3 объединены в один массив с именем `mergedArray`. `concat()` принимает любое количество массивов в качестве аргументов и возвращает новый массив, содержащий все элементы исходных массивов.

Вы также можете использовать `concat()` для объединения массивов со значениями, не являющимися массивами. Например:

const array1 = [1, 2, 3];
const mergedArray = array1.concat(4, 5, 6);
// mergedArray is [1, 2, 3, 4, 5, 6]

В этом случае значения 4, 5 и 6 добавляются в конец array1 для создания `mergedArray`.

Обратите внимание, что `concat()` не изменяет исходные массивы. Вместо этого он создает новый массив, содержащий элементы исходных массивов. Если вы хотите изменить массив на месте, вы можете вместо этого использовать метод `push()`.

2. присоединиться()

Этот метод используется для объединения всех элементов массива в строку. Он принимает необязательный параметр-разделитель, который указывает символ, который будет использоваться для разделения элементов массива в результирующей строке. Если разделитель не указан, элементы разделяются запятой.

Вот пример использования `join()` в JavaScript:

const array = ['apple', 'banana', 'orange'];
const fruitString = array.join();
// fruitString is 'apple,banana,orange'

const array = [1, 2, 3];
const numberString = array.join('-');
// numberString is '1-2-3'

В первом примере элементы массива объединяются в одну строку с запятой в качестве разделителя. Во втором примере элементы массива объединяются в одну строку с дефисом в качестве разделителя.

Вы также можете использовать `join()` для массива массивов, чтобы создать строку вложенных массивов:

const array = [[1, 2], [3, 4], [5, 6]];
const nestedArrayString = array.join('-');
// nestedArrayString is '1,2-3,4-5,6'

Обратите внимание, что `join()` не изменяет исходный массив. Он создает новую строку, содержащую элементы массива. Если вы хотите изменить массив на месте, вы можете вместо этого использовать метод `splice()`.

3. поп()

Этот метод используется для удаления последнего элемента массива и его возврата. Он изменяет исходный массив.

Вот пример использования `pop()` в JavaScript:

const array = [1, 2, 3, 4, 5];
const lastElement = array.pop();
// lastElement is 5
// array is [1, 2, 3, 4]

В этом примере метод pop() удаляет последний элемент (5) из массива и присваивает его переменной lastElement. Затем массив модифицируется, чтобы удалить последний элемент, оставив его с длиной 4.

Вы также можете использовать `pop()` в сочетании с другими методами массива, такими как `push()`, чтобы добавить элементы в конец массива:

const array = [1, 2, 3];
array.push(4);
array.pop();
// array is [1, 2, 3]

В этом примере метод `push()` добавляет элемент 4 в конец массива, а затем метод `pop()` снова удаляет его, оставляя массив без изменений.

Обратите внимание, что если массив пуст, `pop()` возвращает неопределенное значение.

const array = []; 
const element = array.pop(); 
// element is undefined

4. нажать()

Этот метод используется для добавления одного или нескольких элементов в конец массива. Он изменяет исходный массив и возвращает новую длину массива.

Вот пример того, как push() можно использовать в JavaScript:

const array = [1, 2, 3];
const newLength = array.push(4, 5, 6);
// array is [1, 2, 3, 4, 5, 6]
// newLength is 6

В этом примере метод push() добавляет элементы 4, 5 и 6 в конец массива и возвращает новую длину массива (6). Затем массив модифицируется, чтобы включить эти элементы.

Вы также можете использовать push() для добавления массива элементов в конец другого массива:

const array = [1, 2, 3];
const newLength = array.push([4, 5, 6]);
// array is [1, 2, 3, [4, 5, 6]]
// newLength is 4

В этом примере метод push() добавляет массив [4, 5, 6] как один элемент в конец массива и возвращает новую длину массива (4).

Обратите внимание, что push() изменяет исходный массив. Если вы хотите создать новый массив, включающий элементы исходного массива, вы можете вместо этого использовать метод concat().

5. сдвиг()

Этот метод используется для удаления первого элемента массива и его возврата. Он изменяет исходный массив.

Вот пример того, как shift() можно использовать в JavaScript:

const array = [1, 2, 3, 4, 5];
const firstElement = array.shift();
// firstElement is 1
// array is [2, 3, 4, 5]

В этом примере метод shift() удаляет первый элемент (1) из массива и присваивает его переменной firstElement. Затем массив модифицируется, чтобы удалить первый элемент, оставив его с длиной 4.

Вы также можете использовать shift() в сочетании с другими методами массива, такими как unshift(), чтобы добавить элементы в начало массива:

const array = [1, 2, 3];
array.unshift(0);
array.shift();
// array is [1, 2, 3]

В этом примере метод unshift() добавляет элемент 0 в начало массива, а затем метод shift() снова удаляет его, оставляя массив без изменений.

Обратите внимание, что если массив пуст, функция shift() возвращает неопределенное значение.

const array = []; 

const element = array.shift(); 

// element is undefined

6. снять сдвиг()

Этот метод используется для добавления одного или нескольких элементов в начало массива. Он изменяет исходный массив и возвращает новую длину массива.

Вот пример использования unshift() в JavaScript:

const array = [1, 2, 3];
const newLength = array.unshift(4, 5, 6);
// array is [4, 5, 6, 1, 2, 3]
// newLength is 6

В этом примере метод unshift() добавляет элементы 4, 5 и 6 в начало массива и возвращает новую длину массива (6). Затем массив модифицируется, чтобы включить эти элементы в начале.

Вы также можете использовать unshift() для добавления массива элементов в начало другого массива:

const array = [1, 2, 3];
const newLength = array.unshift([4, 5, 6]);
// array is [[4, 5, 6], 1, 2, 3]
// newLength is 4

В этом примере метод unshift() добавляет массив [4, 5, 6] как один элемент в начало массива и возвращает новую длину массива (4).

Обратите внимание, что unshift() изменяет исходный массив. Если вы хотите создать новый массив, включающий элементы исходного массива, вы можете вместо этого использовать метод concat().

7. срез()

Этот метод используется для извлечения части массива и возврата нового массива. Он не изменяет исходный массив. Метод slice принимает два необязательных параметра: начальный индекс и конечный индекс.

Если начальный индекс не указан, по умолчанию используется начало массива. Если конечный индекс не указан, по умолчанию используется конец массива.

Вот пример использования slice() в JavaScript:

const array = [1, 2, 3, 4, 5];
const slice = array.slice(1, 3);
// slice is [2, 3]
// array is [1, 2, 3, 4, 5] (unchanged)

В этом примере метод slice() извлекает элементы с индексами 1 и 2 (2 и 3) из массива и возвращает их в новый массив с именем slice. Исходный массив не изменяется.

Вы также можете использовать slice() с одним аргументом, который указывает начальный индекс:

const array = [1, 2, 3, 4, 5];
const slice = array.slice(2);
// slice is [3, 4, 5]
// array is [1, 2, 3, 4, 5] (unchanged)

В этом случае метод slice() извлекает все элементы массива, начиная с индекса 2 (включительно) и до конца массива.

Вы также можете использовать отрицательные индексы с slice(), который указывает положение элемента относительно конца массива:

const array = [1, 2, 3, 4, 5];
const slice = array.slice(-2);
// slice is [4, 5]
// array is [1, 2, 3, 4, 5] (unchanged)

В этом случае метод slice() извлекает два последних элемента массива.

Обратите внимание, что если начальный индекс больше конечного индекса, slice() возвращает пустой массив.

8. сращивание()

Метод splice() в JavaScript используется для добавления или удаления элементов из массива и возврата удаленных элементов в виде нового массива. Он изменяет исходный массив.

Метод splice() принимает как минимум два аргумента: начальный индекс и количество удалений. Начальный индекс — это индекс, с которого начинается объединение, а количество удалений — это количество удаляемых элементов.

Вот пример того, как можно использовать splice() для удаления элементов из массива:

const array = [1, 2, 3, 4, 5];
const removedElements = array.splice(1, 2);
// removedElements is [2, 3]
// array is [1, 4, 5]

В этом примере метод splice() удаляет элементы с индексами 1 и 2 (2 и 3) из массива и возвращает их в новый массив с именем removeElements. Исходный массив изменен, чтобы удалить эти элементы.

Вы также можете использовать splice() для добавления элементов в массив:

const array = [1, 2, 3];
const removedElements = array.splice(1, 0, 4, 5, 6);
// removedElements is []
// array is [1, 4, 5, 6, 2, 3]

В этом случае метод splice() добавляет элементы 4, 5 и 6 в массив с индексом 1, а количество удалений равно 0, поэтому никакие элементы не удаляются. Исходный массив модифицируется, чтобы включить эти элементы.

Вы также можете использовать splice() для одновременного добавления и удаления элементов:

const array = [1, 2, 3, 4, 5];
const removedElements = array.splice(1, 2, 6, 7);
// removedElements is [2, 3]
// array is [1, 6, 7, 4, 5]

В этом примере метод splice() удаляет элементы с индексами 1 и 2 (2 и 3) из массива и добавляет элементы 6 и 7 с теми же индексами. Исходный массив изменяется, чтобы включить добавленные элементы и удалить удаленные элементы.

Обратите внимание: если начальный индекс больше длины массива, splice() не добавляет и не удаляет элементы, а просто возвращает пустой массив.

9. реверс()

Этот метод используется для изменения порядка элементов в массиве. Он изменяет исходный массив.

Вот пример использования reverse() в JavaScript:

const array = [1, 2, 3, 4, 5];
array.reverse();
// array is [5, 4, 3, 2, 1]

В этом примере метод reverse() меняет порядок элементов в массиве на обратный, так что первый элемент становится последним, а последний элемент становится первым.

Вы также можете использовать reverse() для массива объектов:

const array = [{id: 1}, {id: 2}, {id: 3}];
array.reverse(); // array is [{id: 3}, {id: 2}, {id: 1}]

В этом случае метод reverse() меняет порядок объектов в массиве на обратный.

Обратите внимание, что reverse() изменяет исходный массив. Если вы хотите создать новый массив, противоположный исходному массиву, вы можете использовать методы slice() и reverse() вместе:

const array = [1, 2, 3, 4, 5];
const reversedArray = array.slice().reverse();
// reversedArray is [5, 4, 3, 2, 1]
// array is [1, 2, 3, 4, 5] (unchanged)

В этом примере метод slice() создает неглубокую копию массива, а метод reverse() меняет местами элементы в копии, оставляя исходный массив без изменений.

10. сортировать()

Этот метод используется для сортировки элементов массива на месте. Он может принимать необязательную функцию сравнения в качестве параметра, что позволяет указать собственный алгоритм сортировки. Если функция сравнения не указана, элементы сортируются в порядке возрастания в соответствии с их кодовыми точками Unicode.

Вот пример использования sort() в JavaScript:

const array = [5, 2, 4, 1, 3];
array.sort();
// array is [1, 2, 3, 4, 5]

В этом примере метод sort() сортирует элементы массива в порядке возрастания.

Вы также можете использовать sort() с функцией сравнения в качестве аргумента, чтобы указать пользовательский порядок сортировки:

const array = [{name: 'John'}, {name: 'Jane'}, {name: 'Bob'}];
array.sort((a, b) => a.name.localeCompare(b.name));
// array is [{name: 'Bob'}, {name: 'Jane'}, {name: 'John'}]

В этом случае метод sort() сортирует объекты в массиве на основе свойств их имени, используя метод localeCompare(). Обратите внимание, что sort() изменяет исходный массив.

Также по умолчанию sort() преобразует элементы массива в строки и сортирует их на основе их значений точек Unicode. Это может привести к неожиданным результатам для нестроковых значений. Например:

const array = [10, 5, 8, 1, 7];
array.sort();
// array is [1, 10, 5, 7, 8]

В этом случае метод sort() преобразует числа в строки перед их сортировкой, поэтому результирующий массив не упорядочен по номерам. Чтобы отсортировать массив в числовом порядке, вы можете использовать функцию сравнения в качестве аргумента для sort():

const array = [10, 5, 8, 1, 7];
array.sort((a, b) => a - b);
// array is [1, 5, 7, 8, 10]

Если вы хотите отсортировать элементы массива в порядке убывания, вы можете использовать следующую функцию сравнения в качестве аргумента для sort():

const array = [5, 2, 4, 1, 3];
array.sort((a, b) => b - a);
// array is [5, 4, 3, 2, 1]

Заключение

Это лишь некоторые из многих методов, доступных для работы с массивами в JavaScript. Надеюсь, это поможет! Дайте мне знать, если у вас есть еще вопросы. п


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE