1

私はこのような月の配列を持っています:

var months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];

私がやろうとしているのは、月の名前を変数にして、オブジェクトを次のように設定することです:

for(i=0;i<11;i++){
months[i] = $(".bitem:eq("+i+")");
}

しかし、それは単に置き換えるだけですmonths[i]if i=0たとえば、「jan」をオブジェクトに置き換えます)。私がやりたいのはmonths[i]、変数名に等しい文字列を使用することです。私は.toString()このように使用してみました:

for(i=0;i<11;i++){
months[i].toString() = $(".bitem:eq("+i+")");
}

しかし、私はエラーが発生します:

Error: ReferenceError: invalid assignment left-hand side
4

2 に答える 2

4

jan変数名、などを正確に持つ必要があるのはなぜfebですか? 私が知る限り、プロパティを持つ単純な古いオブジェクトを使用することで、必要なことはすべて実行できます。

var monthNames = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];

var months = {};
for(var i = 0; i < monthNames.length; i++) {
    months[monthNames[i]] = $(".bitem:eq("+i+")");
}

// Example usage
var januaryItem = months["jan"];
// or equivalent: months.jan;
于 2012-08-05T20:45:24.530 に答える
1

変数を作成する代わりに、文字列を配列内のインデックスに変換できるオブジェクトを作成します。

var monthIndex = {
  "jan": 0, "feb": 1, "mar": 2, "apr": 3, "may": 4, "jun": 5,
  "jul": 6, "aug": 7, "sep": 8, "oct": 9, "nov": 10, "dec": 11
};
var months = $(".bitem");

月の名前を指定すると、対応する要素を配列から取得できます。

var m = 'aug';
var element = months[monthIndex[m]];

特定の月名を使用してインデックスを取得することもできます。

var element = months[monthIndex.aug];
于 2012-08-05T20:51:26.043 に答える