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()
?节点列表不是数组,尽管它是“类似数组的”