我看到一些YouTuber不使用array.push()
向数组中添加元素,而是做类似于:
let item = 3
let array = [1, 2];
array = [...array, item]; // Why not use array.push()?
这两种方法有什么区别,我应该使用哪一种?
我看到一些YouTuber不使用array.push()
向数组中添加元素,而是做类似于:
let item = 3
let array = [1, 2];
array = [...array, item]; // Why not use array.push()?
这两种方法有什么区别,我应该使用哪一种?
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);
1,2
,然后你使用扩展语法将它展开到一个新的数组中。你还可以添加新元素,比如值为3
的`item`。数组的 push 方法用于向已有的数组添加项,但如果我们希望将数组元素的副本作为新的数组变量-您可以使用 […array] 运算符。
array.push 操作现有数组,后者则使用新值创建一个新副本。
let array2 = array;
,然后使用push
或[...]
,然后比较array
和array2
,你会看到它们之间的差异。 - undefinedarray
中的所有项(浅拷贝)复制到这个新创建的数组中。3. 在新创建的数组中添加item
。与push()
方法在操作现有数组方面的区别在于新数组的创建。 - undefined