向Javascript对象添加数组
我有一些代码要最终放入JSON对象中。但首先我想创建一个javascript对象,并在该对象中添加一个值数组。听起来很简单,但我的方法似乎是错误的。首先,我创建一个基本对象,设置几个字段。最后,迭代一组复选框,然后,如果在该值处选中一个复选框,则返回一个数组 在最后一步中,我需要将该数组添加到我的对象(myData)中,然后JSONify它 任何关于我如何做到这一点的想法,似乎都是myData.push(过滤器);不起作用 请注意,对象本身不是数组,我想在对象中放置一个数组向Javascript对象添加数组,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我有一些代码要最终放入JSON对象中。但首先我想创建一个javascript对象,并在该对象中添加一个值数组。听起来很简单,但我的方法似乎是错误的。首先,我创建一个基本对象,设置几个字段。最后,迭代一组复选框,然后,如果在该值处选中一个复选框,则返回一个数组 在最后一步中,我需要将该数组添加到我的对象(myData)中,然后JSONify它 任何关于我如何做到这一点的想法,似乎都是myData.push(过滤器);不起作用 请注意,对象本身不是数组,我想在对象中放置一个数组 var
var myData = new Object();
myData.deviceId = equipId;
myData.dateTo = dateTo
myData.dateFrom = dateFrom;
myData.numResults = $("#numResults").val();
var i=0;
var filters = [];
$('input[type=checkbox]').each(function () {
if (this.checked) {
allData += $(this).val() + ",";
filters[i] = {
filterIds: $(this).val()
};
++i;
}
});
myData.push(filters);
这不是向对象添加项的方式,而是更改
myData.push(过滤器)代码>
到
myData.filters=过滤器代码>
另外,可能将=新对象
更改为={}
。没有区别,但更容易阅读,因为文字符号占用的空间更少
阅读更多关于使用推送向过滤器
数组添加元素的信息。使用属性分配将另一个属性添加到myData
对象
var myData = {
deviceId: equipId,
dateTo: dateTo,
dateFrom: dateFrom,
numResults: $("#numResults").val()
};
var filters = [];
$('input[type=checkbox]').each(function () {
if (this.checked) {
allData += $(this).val() + ",";
filters.push({
filterIds: $(this).val()
});
}
});
myData.filters = filters;
顺便说一句,不要使用newobject()
来创建对象,使用{}
可以消除对额外数组和i的需要
var myData = {}
myData.deviceId = equipId;
myData.dateTo = dateTo
myData.dateFrom = dateFrom;
myData.numResults = $("#numResults").val();
myData.filters = [];
$('input[type=checkbox]').each(function () {
if (this.checked) {
allData += $(this).val() + ",";
myData.filters.push({
filterIds: $(this).val()
});
}
});
推送不是针对对象,而是针对数组