Javascript将项添加到当前数组

Javascript将项添加到当前数组,javascript,arrays,array-push,Javascript,Arrays,Array Push,我正在尝试将项目添加到当前数组中 var arrayValues = new Array(); arrayValues.push("Value 1"); arrayValues.push("Value 2"); arrayValues = document.getElementsByTagName('a'); arrayValues.push("Value 3"); 通过这种方式,我得到了一个错误,并且我没有得到值1和值2,当我尝试添加一个新项目时,在获取超链接集合后,它抛出错误:对象不支持这

我正在尝试将项目添加到当前数组中

var arrayValues = new Array();
arrayValues.push("Value 1");
arrayValues.push("Value 2");
arrayValues = document.getElementsByTagName('a');
arrayValues.push("Value 3");
通过这种方式,我得到了一个错误,并且我没有得到值1和值2,当我尝试添加一个新项目时,在获取超链接集合后,它抛出错误:对象不支持这个属性或方法,它是push方法


分配超链接集合后,数组会发生什么情况?如何向其中添加新项?

您的意思是
arrayValues.push(document.getElementsByTagName('a'))

否则,您将分配由
getElementsByTagName()
返回的
NodeList
,它将覆盖刚刚将值推入的数组


旁注:这里没有理由使用
new Array()
。只需编写
var arrayValues=[]

如果要在一次呼叫中按全部
来按它们

生成的代码如下所示:

var arrayValues = [];
arrayValues.push("Value 1");
arrayValues.push("Value 2");
arrayValues.push.apply(arrayValues, Array.prototype.slice.call(document.getElementsByTagName('a')));
arrayValues.push("Value 3");

您不需要
应用
调用
推送
arrayValues
已经是一个数组,调用
arrayValues.push()
将在正确的范围(
arrayValues
)中执行正确的函数(
push
)。实际上我想向
.push()
发送多个参数。例如,
vara=[],b=[2,3],如果您
a.push(1);a、 推(b);a、 按(4)
,然后
a
[1,2,3,4]
。但是,如果使用
a.push.apply(a,b),您将获得
[1,2,3,4]
。这就是这个答案的预期行为:将所有
元素推送到现有数组中。你也可以说它是
a=a.concat(b)的一个版本。好的,这更有意义。在这种情况下,为什么不直接使用
concat()
?节点列表不是数组,尽管它是“类似数组的”