-1

我得到了一个由表单生成的 JSON 文件,其结构如下:

[{"r1":"9","r2":"","r3":"3","r4":"10","r5":"","msg":"Integer tempor ullamcorper urna, at lacinia lectus sodales et. Pellentesque ac ornare justo. "},
{"r1":"4","r2":"7","r3":"","r4":"8","r5":"7","msg":"Integer tempor ullamcorper urna, at lacinia lectus sodales et. "}]

我需要对保存在(r1 到 r5)中的数字进行统计并显示消息(msg)

我正在使用两个固定循环来重新创建具有这两种不同内容类型的数组

for (i=0; i<data.length; ++i) {
    results.push([
                   +data[i]['r1'],
                   +data[i]['r2'],
                   +data[i]['r3'],
                   +data[i]['r4'],
                   +data[i]['r5']
                ]);
 }


 for (i=0; i<data.length; ++i) {
     messages.push([
                    data[i]['msg']
                  ]);
  }   

我想知道是否有更好的方法来循环到数值,因为有时这种形式会有更多或更少的数字字段(例如 r1 到 r15,我不想每次都必须手动更改我的代码.

使用 date[0].length dosnt 帮助,我认为可以计算每个 {} 中的对象数

非常感谢您的帮助,我是 JSON 和数组的新手。

4

1 回答 1

1

在初始循环中使用for in循环:

for (i=0; i<data.length; ++i) {
    for (var key in data[i]) {
        if (data[i].hasOwnProperty(key) && key != "msg")
             results.push(data[i][key]);
    }
}
于 2013-10-28T20:35:11.760 回答