变量作为JavaScript对象文字中的属性名称

时间:2017-08-31 13:17:32

标签: javascript

我需要得到这个对象:

{
  "1": {
    "epg": {
        "title1": "TITLE",
        "start1": "10:00",
        "stop1": "12:50",
        "description1": "DESC",
        "percent1": "17",
        "step1": "2"
    }
},
  "2": {
    "epg": {
        "title2": "TITLE",
        "start2": "13:50",
        "stop2":  "14:00",
        "description2": "DESC",
        "percent2": "-262",
        "step2": "7"
    }
  }
}

我写这段代码:

/* MAKE - 5 shows epg */
for (i = 0; i < 2; i++) {
     data.push( {i: {"epg": {"title1": "", "start1": "", "stop1": "", "description1": "", "percent1": "", "step1": ""}}} );
};

/* SEND - 5 shows epg */
res.json(data);

我得到了这个输出:

[{"i":{"epg":{"title1":"","start1":"","stop1":"","description1":"","percent1":"","step1":""}}},{"i":{"epg":{"title1":"","start1":"","stop1":"","description1":"","percent1":"","step1":""}}}]

这是不正确的......请你给我一些功能或如何做。

1 个答案:

答案 0 :(得分:0)

您可以使用对象并使用递增的索引进行分配。

&#13;
&#13;
var data = {},
    j;

for (i = 0; i < 2; i++) {
    j = i + 1;
    data[j] = { epg: {} };
    data[j].epg['title' + j] = '';
    data[j].epg['start' + j] = '';
    data[j].epg['stop' + j] = '';
    data[j].epg['percent' + j] = '';
    data[j].epg['step' + j] = '';
}

console.log(data);
&#13;
&#13;
&#13;