#javascript #arrays
Вопрос:
Я видел, как некоторые ютуберы не используют array.push()
для добавления элементов в массив, а скорее делают что-то вроде:
let item = 3
let array = [1, 2];
array = [...array, item]; // Why not use array.push()?
Есть ли какая — либо разница между этими двумя методами и какой из них я должен использовать?
Комментарии:
1. Попробуйте
let array2 = array;
, а затемpush
или[...]
, затем сравнитеarray
,array2
и вы увидите разницу.2.
[...array, item]
— это позволит: 1. создать новый массив. 2. скопируйте (мелко) все элементы изarray
этого вновь созданного массива. 3. добавьтеitem
его во вновь созданный массив. Разница заключается в создании нового массива по сравнению с манипулированием существующим массивом в случаеpush()
метода.
Ответ №1:
Push: Используйте push, когда вы хотите добавить данные в существующий массив и не хотите создавать
Когда вы используете метод push, вы добавляете элемент к существующему, т. е. не создаете новый массив.
Метод push() добавляет один или несколько элементов в конец массива и возвращает новую длину массива. — MDN
const arr = [1, 2, 3, 4, 5];
const returnValue = arr.push(6);
console.log(arr);
console.log(returnValue)
Синтаксис распространения: Используйте синтаксис распространения, если вы хотите добавить элементы в новый массив(он может быть из распространения или также может добавлять новые элементы), но создаст новый массив []
Это называется синтаксисом распространения
Синтаксис распространения (…) позволяет итерировать, например, выражение массива или строку, которые должны быть расширены в местах, где ожидается ноль или более аргументов (для вызовов функций) или элементов (для литералов массива), или выражение объекта, которое должно быть расширено в местах, где ожидается ноль или более пар ключ-значение (для литералов объектов).
let array = [1, 2];
let item = 3
result = [...array, item];
console.log(result === array);
В приведенном выше фрагменте вы создаете новый array
и присваиваете значения 1, 2
, затем используете синтаксис распространения, чтобы распространить его в новый массив. Вы также можете добавлять новые элементы, например item
, значение которых равно 3
.
Ответ №2:
массив.push манипулирует существующим массивом. Последний создает новую копию с новым значением.
Ответ №3:
Выталкивание массива используется для выталкивания элементов из существующего массива, но если нам нужна копия элемента массива в качестве новой переменной массива, вы можете использовать оператор […array].