Javascript 如何使数组名成为对象中的变量
在对象数据2中,我希望数组i是一个基于.each的自动递增数字。但它一直将其命名为i。属性名在Javascript中按字面意思处理,不管是否有任何具有该名称的变量Javascript 如何使数组名成为对象中的变量,javascript,jquery,json,Javascript,Jquery,Json,在对象数据2中,我希望数组i是一个基于.each的自动递增数字。但它一直将其命名为i。属性名在Javascript中按字面意思处理,不管是否有任何具有该名称的变量 var data = {}; $('.content').each(function(i){ var id = $(this).attr('id'), level = $(this).attr('level'), name = $(this).find('
var data = {};
$('.content').each(function(i){
var id = $(this).attr('id'),
level = $(this).attr('level'),
name = $(this).find('textarea').val(),
data2 = {
i:[
{
"id": id,
"level": level,
"name": name
}
]
};
$.extend(data, data2);
});
但是,在循环的每次迭代中都会重新定义对象。您的代码可能如下所示:
data2 = {};
data2[i] = {
"id": id,
"level": level,
"name": name
};
注意,我已经删除了数组文字-对象文字周围的[]。我无法想象你需要它,但如果你真的需要,你可以随时把它放回去。也许你应该这样做:
data2[i] = {
id: id,
level: level,
name: name
};
data2[i] = [{
"id": id,
"level": level,
"name": name
}];
var data = {};
$('.content').each(function(i) {
var id = $(this).attr('id'),
level = $(this).attr('level'),
name = $(this).find('textarea').val(),
data2 = {};
data2[i] = [{
"id": id,
"level": level,
"name": name}];
};
$.extend(data, data2);