Avatar ·

Как добавить элемент в конец массива в JavaScript?

Привет всем! Я только начал изучать JavaScript и столкнулся с проблемой. У меня есть массив с именами пользователей:
let users = ['Анна', 'Борис', 'Виктор'];
Я хочу добавить новое имя 'Глеб' в конец этого массива, но не понимаю, как это сделать правильно. Пробовал написать что-то вроде:
users = users + 'Глеб';
Но в результате получаю странную строку "Анна,Борис,ВикторГлеб", а не массив. Потом пытался использовать квадратные скобки:
users[users.length] = 'Глеб';
Это вроде сработало, но я не уверен, что это правильный способ. Ещё слышал про какие-то методы push, pop, shift, unshift, но запутался. Подскажите, пожалуйста, как профессионально добавлять элементы в конец массива? И есть ли разница между разными способами? Заранее спасибо за помощь! <<>>

Правильный способ: метод push()

В JavaScript для добавления элемента в конец массива используется метод push(). Это самый простой, читаемый и производительный способ. Вот как он работает:

let users = ['Анна', 'Борис', 'Виктор'];
users.push('Глеб');
console.log(users); // ['Анна', 'Борис', 'Виктор', 'Глеб']

Метод push() изменяет исходный массив (мутирует его) и возвращает новую длину массива:

let newLength = users.push('Дмитрий');
console.log(newLength); // 5
console.log(users); // ['Анна', 'Борис', 'Виктор', 'Глеб', 'Дмитрий']

Добавление нескольких элементов

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

let numbers = [1, 2, 3];
numbers.push(4, 5, 6);
console.log(numbers); // [1, 2, 3, 4, 5, 6]

Почему другие способы — плохая идея

  • Конкатенация строк (users + 'Глеб') — JavaScript преобразует массив в строку, что ломает структуру данных.
  • Присваивание по индексу (users[users.length] = value) — технически работает, но код менее читаем и не интуитивен. Кроме того, если вы ошиблись с индексом, можно случайно создать "дырку" в массиве.
  • Метод unshift() — добавляет элемент в начало массива, а не в конец.

Альтернатива: создание нового массива (иммутабельный подход)

Если вы не хотите изменять исходный массив, используйте метод concat() или спред-оператор (ES6+):

let original = [1, 2, 3];
let newArray = original.concat(4);
console.log(original); // [1, 2, 3] — не изменился
console.log(newArray); // [1, 2, 3, 4]

// Или с помощью спред-оператора:
let anotherArray = [...original, 5, 6];
console.log(anotherArray); // [1, 2, 3, 5, 6]

Совет для начинающих

Всегда используйте push() для добавления в конец. Это стандарт, принятый в сообществе JavaScript-разработчиков. Код будет понятен любому, кто его прочитает.

<<>>

Добавление с помощью splice() и спред-оператора

Метод splice() обычно используется для удаления/замены элементов, но с ним можно и добавлять:

let arr = [1, 2, 3];
arr.splice(arr.length, 0, 4); // Вставка на позицию arr.length (т.е. в конец)
console.log(arr); // [1, 2, 3, 4]

Параметры: splice(индекс_вставки, сколько_удалить, ...элементы_для_вставки). Здесь мы удаляем 0 элементов и вставляем 4.

Когда это полезно?

Этот подход пригодится, если вам нужно вставить элемент не только в конец, но и в середину массива. Однако для простого добавления в конец push() остаётся лучшим выбором.

Современный синтаксис: длина массива

Иногда можно встретить такой код:

arr[arr.length] = 'new';

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