如果要连接两个以上的数组,
concat()那么这样做是为了方便和可能的性能。
var a = [1, 2], b = ["x", "y"], c = [true, false];var d = a.concat(b, c);console.log(d); // [1, 2, "x", "y", true, false];
对于仅连接两个数组,可以使用
push接受多个包含要添加到数组中的元素的参数的事实来代替将一个数组中的元素添加到另一个数组的末尾而不产生新数组。使用
slice()它也可以代替它,
concat()但是这样做似乎没有性能优势。
var a = [1, 2], b = ["x", "y"];a.push.apply(a, b);console.log(a); // [1, 2, "x", "y"];
在ECMAscript 2015及更高版本中,这可以进一步减少到
a.push(...b)
但是,似乎对于大型数组(成员数为100,000或更多),将元素数组传递给
push(使用
apply()或ECMAscript
2015扩展运算符)的技术可能会失败。对于此类阵列,使用循环是一种更好的方法。。



