Javascript 推送到JS数组的正确方法

Javascript 推送到JS数组的正确方法,javascript,arrays,Javascript,Arrays,我有一个名为“inputs”的数组,我想将一些值推送到它 我想知道这样做是否正确: inputs.push(name: $('#uploaderName').name(), value: $('#uploaderName').val()); #uploaderName是一个表单字段的ID,它的值是我想要推送的 仅供参考,“输入”数组的创建方式如下: var inputs = data.context.find(':input').not(':button'); 我也尝试过这种方法,但运气不佳

我有一个名为“inputs”的数组,我想将一些值推送到它

我想知道这样做是否正确:

inputs.push(name: $('#uploaderName').name(), value: $('#uploaderName').val());
#uploaderName是一个表单字段的ID,它的值是我想要推送的

仅供参考,“输入”数组的创建方式如下:

var inputs = data.context.find(':input').not(':button');
我也尝试过这种方法,但运气不佳:

inputs.push({name: $('#uploaderName').attr("name"), value: $('#uploaderName').val()});
为了进一步解释,在这个脚本的末尾,它调用:

data.formData = inputs.serializeArray();

然后这些数据被传递到一个PHP脚本。在调用inputs.serializeArray()之前,我需要能够向“inputs”添加一些值。

您正在存储对象,因此使用
{…}
首先创建对象,并将其存储到
inputs
数组中,如

inputs.push({name: $('#uploaderName').name(), value: $('#uploaderName').val()});
//----------^----------------------------------------------------------------^

var myObj  = {name: $('#uploaderName').name(), value: $('#uploaderName').val()}; 
inputs.push(myObj);

对于
jQuery
集合,您可以使用包含其他
元素的


jQuery集合实际上不是
Array
s。它们就像数组一样,意味着它们有一个
长度和数字属性,但它们不会有
数组
方法,比如
.push()

不,因为你在推一个对象。输入由一些字段名和值组成,我只需要能够向已经生成的“inputs”变量添加更多的名称/值对。您使用的是jQuery或Zepto之类的库吗
.find(“:input”)。not(“:button”)
对我来说意味着
data.context
input
将是类似数组的集合,而不是实际的
array
s。如果是这样,他们就不会有
.push()
方法。但是,你可以从他们那里得到一个
数组
。我正在使用的脚本使用jQueryI还向我的问题中添加了一些信息。这似乎不起作用,但我向我的问题中添加了一些信息似乎不起作用。有没有办法告诉我们“输入”是什么类型的数据,以便我们知道如何正确地添加到其中?@SherwinFlight抱歉。刚刚更新了代码片段
.add()
创建一个修改过的集合,而不是修改原始集合,因此您必须存储结果。它应该是像您一样的“#uploaderName”还是$(“#uploaderName”)?@SherwinFlight两者都可以
.add()
可以接受a或a。您在答案中使用的方式很好。我接受你的回答。谢谢你的帮助:)
inputs = inputs.add('#uploaderName');