在 JavaScript 中将多个值推送到数组
Push multiple Values to an Array in JavaScript
使用该Array.push()
方法将多个值推送到一个数组,例如
arr.push('b', 'c', 'd');
. 该push()
方法将一个或多个值添加到数组的末尾。
const arr = ['a']; arr.push('b', 'c', 'd'); console.log(arr); // 👉️ ['a', 'b', 'c', 'd']
Array.push()
方法接受一个或多个参数并将它们添加到数组的末尾。
该方法更改原始数组的内容并返回数组的新长度。
push()
方法不返回数组,它返回数组的新长度。如果您需要推入数组的值存储在另一个数组中,请使用扩展语法 (…)。
const arr = ['a']; const values = ['b', 'c', 'd']; arr.push(...values); console.log(arr); // 👉️ ['a', 'b', 'c', 'd']
我们使用扩展语法 (…) 来解压
Array.push()
方法调用中的值。
您可以想象展开语法 (…) 解压缩数组并将其值作为多个逗号分隔的参数传递给该Array.push()
方法。
您还可以使用
扩展语法 (…)
将多个值压入一个数组。
使用扩展语法将多个值推送到数组 (…)
使用传播语法将多个值推送到一个数组,例如
arr = [...arr, 'b', 'c', 'd'];
.
扩展语法可用于解包原始数组的值,后跟一个或多个附加值。
let arr = ['a']; arr = [...arr, 'b', 'c', 'd']; console.log(arr); // 👉️ ['a', 'b', 'c', 'd']
请注意,我们使用let
关键字来声明arr
变量。如果我们使用 声明变量const
,我们将无法重新分配它。
在这种情况下,我们将数组的内容解压缩arr
到一个新数组中,并在新数组的末尾添加 3 个值。
如果您需要推入数组的值存储在另一个数组中,请使用扩展语法 (…) 将它们解包。
let arr = ['a']; const values = ['b', 'c', 'd']; arr = [...arr, ...values]; console.log(arr); // 👉️ ['a', 'b', 'c', 'd']
我们在同一语句中使用了扩展语法 (…) 2 次。
我们首先将arr
数组解包成一个新数组,然后将values
数组解包成新数组。
如果要将值推送到数组的开头,请更改解包数组的顺序。
let arr = ['a']; const values = ['b', 'c', 'd']; arr = [...values, ...arr]; console.log(arr); // 👉️ [ 'b', 'c', 'd', 'a' ]
或者,您可以使用该splice()
方法。
使用 splice() 将多个值推送到数组
使用该Array.splice()
方法将多个值推送到一个数组,例如
arr.splice(arr.length, 0, 'b', 'c', 'd');
.
该splice()
方法会将提供的值添加到数组的末尾。
const arr = ['a']; arr.splice(arr.length, 0, 'b', 'c', 'd'); console.log(arr); // 👉️ ['a', 'b', 'c', 'd']
我们将以下参数传递给
Array.splice()
方法:
- start index – 开始更改数组的索引。
- delete count – 从起始索引开始从数组中删除多少个元素
。 - 从起始索引开始添加到数组的一个或多个值。
我们想在数组的末尾插入元素,所以我们将数组的长度作为起始索引传递。
我们不想删除任何元素,因此我们提供0
了删除计数参数。
这种方法实现了与方法相同的结果push()
,但是,它有点冗长和间接。
如果要推入数组的多个值存储在另一个数组中,请使用扩展语法 (…)。
const arr = ['a']; const values = ['b', 'c', 'd']; arr.splice(arr.length, 0, ...values); console.log(arr); // 👉️ [ 'a', 'b', 'c', 'd' ]
我们使用扩展语法 (…)values
在方法调用中解压缩数组
Array.splice()
。
您还可以使用该Array.unshift()
方法将多个值推送到一个数组。
使用 unshift() 将多个值推送到数组
使用该Array.unshift()
方法将多个值推送到一个数组中,例如
arr.unshift('a', 'b', 'c');
.
该unshift()
方法将一个或多个元素添加到数组的开头。
const arr = ['d']; arr.unshift('a', 'b', 'c'); console.log(arr); // 👉️ [ 'a', 'b', 'c', 'd' ]
Array.unshift()方法将
一个或多个元素添加到数组的开头并返回数组的新长度。
unshift()
方法与方法相反,push()
因为它将指定的值添加到数组的开头。如果您的多个值存储在另一个数组中,请在调用该unshift()
方法时使用扩展语法 (…)。
const arr = ['d']; const values = ['a', 'b', 'c']; arr.unshift(...values); console.log(arr); // 👉️ [ 'a', 'b', 'c', 'd' ]
您还可以使用该Array.concat()
方法将多个值推送到一个数组。
使用 concat() 将多个值推送到数组
使用该Array.concat()
方法将多个值推送到一个数组,例如
const result = arr.concat('b', 'c', 'd');
.
该Array.concat()
方法将一个数组或多个值作为参数,并将这些值连接到一个新数组中。
const arr = ['a']; const result = arr.concat('b', 'c', 'd'); console.log(result); // 👉️ [ 'a', 'b', 'c', 'd' ]
我们将多个参数传递给
Array.concat
方法,但是,该方法也可以用数组调用。
const arr = ['a']; const values = ['b', 'c', 'd']; const result = arr.concat(values); console.log(result); // 👉️ [ 'a', 'b', 'c', 'd' ]
Array.concat()
请注意,我们在调用该方法时不必使用扩展语法 (…)
。
请注意,该concat()
方法将值连接到一个新数组中并返回新数组。
该方法不会改变调用它的原始数组。
您选择哪种方法是个人喜好的问题。我会使用该
Array.push()
方法,因为我发现它非常直接和直观。