0

私はいくつかのjsonobjectsをajax呼び出しから次のように返しました:

...
main: [{
 0: { // i'm showing only one... have severals
    IMGNAM0: "856f070054d378fa5681332095257c3c94d5f858.jpg"
    IMGNAM1: "68dfda9de984e914b7027c4a3cda51fb375dd828.jpg"
    IMGNAM2: "da0a1a3f68af208baca5eae23900548b40adfbef.jpg"
    IMGNAM3: "c8b540f8bdfe054e3c888e800b380dd60a4ac371.jpg"
    IMGNAM4: "565eb06485c51123786a88b8d5537c6b45add950.jpg"
    IMGPAT0: "./static/uploaded_images/1/"
    IMGPAT1: "./static/uploaded_images/1/"
    IMGPAT2: "./static/uploaded_images/1/"
    IMGPAT3: "./static/uploaded_images/1/"
    IMGPAT4: "./static/uploaded_images/1/"
 }
}]
...

したがって、このobj名を動的に取得する必要があります。実行しようとしていることを使用して、高速プレビューを作成します。

var mainlen = data.main.length-1; // get number of obj
for(var i = 0; i <= mainlen; i++){
   for(var j = 0; j <= 4; j++){ // examples to get all 4 obj names
        if(data.main[i].IMGNAM+j != null){
             // trying to get IMGNAM0 concatenate with j
             console.log(data.main[i].IMGNAM+j); 
             console.log(data.main[i].IMGPAT+j);
        }
   }
}

コンソールは私を次のように表示しますnot a number (NaN)、これを機能させるための最良の方法は何ですか?

4

4 に答える 4

1

でデータにアクセスするためにポイントを使用する代わりに、を.IMGNAM+j使用します[IMGNAM+j]

于 2013-03-08T12:14:29.363 に答える
0

以下のコードを使用してください。

var mainlen = data.main.length-1; // get number of obj
for(var i = 0; i <= mainlen; i++){
   for(var j = 0; j <= 4; j++){ // examples to get all 4 obj names
        if(data.morrows[i].['IMGNAM'+j] != null){
             // trying to get IMGNAM0 concatenate with j
             console.log(data.main[i].['IMGNAM'+j]); 
             console.log(data.main[i].['IMGPAT'+j]);
        }
   }
}

これはあなたの問題を解決するはずです

于 2013-03-08T12:16:50.847 に答える
0

次のようなものが必要です。

 data.morrows[i]["IMGNAM" + j];
于 2013-03-08T12:17:11.047 に答える
0

角かっこを使用して、連結された文字列をラップします。

if(data.main[i]['IMAGNAM'+j] != null){
于 2013-03-08T12:21:26.670 に答える