-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) を表示する必要があります。

2 つの固定ループを使用して、これら 2 つの異なるコンテンツ タイプで配列を再作成しています

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 に答える