我怎样才能制作这个jsonArray表格?

时间:2013-05-17 07:03:29

标签: javascript object push arrays

我想得到这个(一个对象中有四个键和值):

[{"sms":"Y","email":"Y","phone":"Y","oto":"Y"},{"sms":"N","email":"N","phone":"N","oto":"N"}]

但结果是:

[{"sms":"Y"},{"email":"Y"},{"phone":"Y"},{"oto":"Y"},{"sms":"N"},{"email":"N"},{"phone":"N"},{"oto":"N"}]

这是我的代码:

var chkObj = {};
var chkArray = [];
var cntchk = 1;
$("tbody input").each(function(idx){
    var Nm = $(this).attr("name");
    this.checked ? chkObj[Nm] = 'Y' : chkObj[Nm] = 'N';
    cntchk++;
    if(cntchk = 4){
            chkArray.push(chkObj);
        chkObj = {};
        cntchk = 1;
    }
});

3 个答案:

答案 0 :(得分:1)

你能告诉我们表格吗?这给出了有限的答案范围。

但如果我猜对了,你有一个表格,你有以下字段短信,电子邮件,电话,然后oto,对吗?

所以你需要做的是,不是为每个输入做这件事,你必须为四个输入做一次。 意思是你必须设置chkObj ['sms'],chkObj ['email'],chkObj ['phone'],然后chkObj ['oto']然后再做chkArray.push(chkObj)。

答案 1 :(得分:0)

你错过了这个表达式中的第二个等号: if(cntchk = 4){,所以不是比较,而是分配。将其更改为if(cntchk == 4){

答案 2 :(得分:0)

如果有条件,你错过了一个“=”签到。 试试这个:

var chkObj = {};
var chkArray = [];
var cntchk = 1;
$("tbody input").each(function(idx){
var Nm = $(this).attr("name");
this.checked ? chkObj[Nm] = 'Y' : chkObj[Nm] = 'N';
cntchk++;
if(cntchk **==** 4){
        chkArray.push(chkObj);
    chkObj = {};
    cntchk = 1;
}
});