0

2x10 の配列を取得したので、その配列の任意のメンバーに変数を設定する必要があります。手で作るのはクールではないので、 for 演算子で宣言しようとしています:

    allImages=[
    [
        'img1-1','img1-2', 'img1-3', 'img1-4', 'img1-5'
    ],[
        'img2-1','img2-2', 'img2-3', 'img2-4', 'img2-5'
    ]
];

for(i=0;i<1;i++){
    console.log(i + ' part ------------------------');
    for(j=0;j<5;j++){

        x+(i+'-'+j) = allImages[i][j];
        console.log((x+(i+'-'+j)) + '-> item');
    }
}

しかし、私は基本的なエラーを犯しているように見えます:

Invalid left-hand side in assignment

とにかく、これを解決する方法がわかりません。カスタムキーを使用して多くの変数を宣言する方法を誰かが言うことができますか?

----- 私のソリューション ( https://stackoverflow.com/users/1230836/elias-van-ootegem ):

var statImg = {};
var blurImg ={};

for (var i = 0; i < 13; i++) {
    var keyName = 'img'+i;
    var valOfKey = 'img/'+i+'.png'
    statImg[keyName] = valOfKey;
    blurImg[keyName] = valOfKey;
};
4

1 に答える 1

1

オブジェクトを作成し、プロパティ名を生成しようとしている左側のトリックを使用するか、グローバルオブジェクトにフォールバックする必要があります (そうしないことを願っています) :

var names = {};//create object
//-> in loop:
names[ x+(i+'-'+j)] = allImages[i][j];

完全にするために、繰り返しますが、実際に行ってこれを行わないでnamesくださいwindow。その場合、グローバル スコープを汚染することになります。おそらく、 、または実際に例で連結しているダッシュのようなプロパティにアクセスするのを「困難」にする値の値( 、および など)
を確認したい場合があります。xij%

var anObj = {};
anObj['my-property'] = 'this is valid';
console.log(anObj.my-property);//ReferenceError: property is not defined

これは、ダッシュまたはデクリメント演算子がプロパティの一部として認識されないためです。いずれにせよ、あなたの場合、別々の変数を使用することは最善の方法ではありません。プログラミング言語が配列とオブジェクトをサポートするのは、まさにこの理由からです。関連するデータをグループ化し、単一の変数を介して簡単にアクセスできるようにするためです
必要な場合は、オブジェクトを使用してください。そうでない場合は、array.sort(function(){});
これを達成する方法について MDN を確認してソートする配列を作成してください。途中で行き詰まっている場合はお知らせください....

于 2013-06-25T10:01:30.760 に答える