Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI2 апр. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Что возвращает метод Push в JavaScript
push() — это встроенный метод массива в JavaScript, который добавляет один или несколько элементов в конец массива и возвращает новую длину массива.
Синтаксис и возвращаемое значение
const arr = [1, 2, 3];
const newLength = arr.push(4);
console.log(newLength); // 4 — это новая длина массива
console.log(arr); // [1, 2, 3, 4] — массив изменился
Важно: push() возвращает число (новую длину), а не массив.
Детальный пример
const numbers = [10, 20];
// push() возвращает новую длину
const length1 = numbers.push(30);
console.log(length1); // 3
console.log(numbers); // [10, 20, 30]
// Можно добавить сразу несколько элементов
const length2 = numbers.push(40, 50, 60);
console.log(length2); // 6
console.log(numbers); // [10, 20, 30, 40, 50, 60]
// push() с переменной
const element = 70;
const length3 = numbers.push(element);
console.log(length3); // 7
Важные характеристики
1. Мутирует исходный массив
В отличие от других методов, push() изменяет исходный массив:
const arr = [1, 2];
arr.push(3); // Массив изменится
console.log(arr); // [1, 2, 3]
2. Работает с разными типами данных
const mixed = [];
mixed.push(42); // число
mixed.push("text"); // строка
mixed.push({id: 1}); // объект
mixed.push([1, 2, 3]); // массив
mixed.push(null); // null
mixed.push(undefined); // undefined
console.log(mixed);
// [42, "text", {id: 1}, [1, 2, 3], null, undefined]
3. Работает со строками (но результат может быть неожиданным)
const arr = ["a", "b"];
arr.push("c", "d");
console.log(arr); // ["a", "b", "c", "d"]
console.log(arr.length); // 4
4. Использование с контекстом (this)
const obj = {
items: [1, 2],
add: function(item) {
return this.items.push(item); // Возвращает новую длину
}
};
const length = obj.add(3);
console.log(length); // 3
console.log(obj.items); // [1, 2, 3]
Частые ошибки
Ошибка 1: Присваивание результата push() вместо самого массива
// Неправильно
const arr = [1, 2].push(3);
console.log(arr); // 3 — это число, не массив!
// Правильно
const arr = [1, 2];
arr.push(3);
console.log(arr); // [1, 2, 3]
Ошибка 2: Забывчивость о мутировании
const original = [1, 2];
const copy = original; // Не копирует, только ссылка
copy.push(3);
console.log(original); // [1, 2, 3] — исходный массив тоже изменился!
// Правильно (если нужна копия):
const copy = [...original];
copy.push(3);
console.log(original); // [1, 2] — не изменился
Альтернативы push()
Spread оператор (не мутирует)
const arr = [1, 2];
const newArr = [...arr, 3, 4];
console.log(arr); // [1, 2] — не изменился
console.log(newArr); // [1, 2, 3, 4]
concat() (не мутирует)
const arr = [1, 2];
const newArr = arr.concat(3, 4);
console.log(arr); // [1, 2] — не изменился
console.log(newArr); // [1, 2, 3, 4]
push() vs spread в React/современном коде
// Во фронтенде часто лучше использовать spread (для immutability)
const todos = [...todos, newTodo]; // Не мутирует
const todos = todos.push(newTodo); // Мутирует — может быть проблема в React
Практический пример: сбор данных
function collectValidNumbers(values) {
const result = [];
for (const value of values) {
if (typeof value === "number" && !isNaN(value)) {
const newLength = result.push(value);
console.log(`Добавлено число ${value}, длина массива: ${newLength}`);
}
}
return result;
}
const data = [1, "text", 2, null, 3, undefined];
const numbers = collectValidNumbers(data);
console.log(numbers); // [1, 2, 3]
Заключение
push() возвращает новую длину массива (число), а не сам массив. Это важно помнить, так как это частая ошибка начинающих разработчиков. В современном JavaScript часто предпочитают spread оператор для избежания мутирования данных.