0

私がやろうとしていることに対して正しい用語を使用しているかどうかはわかりませんので、失礼します。

Mootools Moreには、要素のコレクションをトゥイーンできるFx.Elementsクラスがあります。クラスのsetメソッドはオブジェクトのみを受け入れ、元の値を設定できますが、HTMLが動的に生成されるため、トゥイーンする必要のある要素の数がわかりません。

これが私がやりたいことの私の理論です:

var n = $$('.element').length; // 5
var myObj = {};
var value = 0;
var i;

for (i = 0; i < n; i++) {
    myObj = {
      i: { property : value }
    }                        
}

console.log(myObj);

//    What I get:
//    Object { i : { property: 0 } }

//    What I would like:
//    Object { 
//      0 : { property : 0 
//      },
//      1 : { property : 0 
//      },
//      2 : { property : 0 
//      },
//      3 : { property : 0 
//      },
//      4 : { property : 0 
//      }
//    }          

上記は、明らかにi、オブジェクトのプロパティを5回だけ設定します。i上向きに繰り返す必要があります。

私が思っているよりもうまく説明できたと思います!

4

1 に答える 1

2

オブジェクトリテラル構文キーを使用する場合、引用符がなくても、常に文字列として扱われます。その上、毎回オブジェクト全体を上書きします。

このコードはあなたが望むことをします。投稿した例に適合しない最後のループにi < n入るので、これをに変更したことに注意してください。i = 5

for(var i = 0; i < n; i++) {
    myObj[i] = {
        property: value
    }
}
于 2012-06-12T09:02:28.550 に答える