使用push()
函数追加到数组:
// initialize array
var arr = [
"Hi",
"Hello",
"Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);
会打印
["Hi", "Hello", "Bonjour", "Hola"]
您可以使用push()
函数在一次调用中将多个值附加到数组:
// initialize array
var arr = [ "Hi", "Hello", "Bonjour", "Hola" ];
// append multiple values to the array
arr.push("Salut", "Hey");
// display all values
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
会打印
Hi
Hello
Bonjour
Hola
Salut
Hey
更新
如果要将一个数组的项添加到另一个数组,可以使用firstArray.concat(secondArray)
:
var arr = [
"apple",
"banana",
"cherry"
];
arr = arr.concat([
"dragonfruit",
"elderberry",
"fig"
]);
console.log(arr);
会打印
["apple", "banana", "cherry", "dragonfruit", "elderberry", "fig"]
如果你只是附加一个变量,那么push()
可以正常工作。如果需要追加另一个数组,请使用concat()
:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
var ar3 = ar1.concat(ar2);
alert(ar1);
alert(ar2);
alert(ar3);
吐出来的:
"1,2,3"
"4,5,6"
"1,2,3,4,5,6"
除非重新分配,否则 concat 不会影响ar1
和ar2
,例如:
ar1 = ar1.concat(ar2);
alert(ar1);
将显示:
"1,2,3,4,5,6"
这里有很多很棒的信息
一些快速基准测试(每个测试 = 500k 附加元素,结果是多次运行的平均值)显示如下:
Firefox 3.6(Mac):
arr[arr.length] = b
更快 (300ms vs. 800ms) arr.push(b)
更快 (500ms 与 900ms) Safari 5.0(Mac):
arr[arr.length] = b
更快 (90ms vs 115ms) arr[arr.length] = b
更快 (160ms vs. 185ms) 谷歌 Chrome 6.0(Mac):
我更喜欢arr.push()
语法,但我认为使用arr[arr.length]
版本会更好,至少在原始速度方面。我很乐意看到 IE 运行的结果。
我的基准测试循环:
function arrpush_small() {
var arr1 = [];
for (a = 0; a < 100; a++)
{
arr1 = [];
for (i = 0; i < 5000; i++)
{
arr1.push('elem' + i);
}
}
}
function arrlen_small() {
var arr2 = [];
for (b = 0; b < 100; b++)
{
arr2 = [];
for (j = 0; j < 5000; j++)
{
arr2[arr2.length] = 'elem' + j;
}
}
}
function arrpush_large() {
var arr1 = [];
for (i = 0; i < 500000; i++)
{
arr1.push('elem' + i);
}
}
function arrlen_large() {
var arr2 = [];
for (j = 0; j < 500000; j++)
{
arr2[arr2.length] = 'elem' + j;
}
}