1

ユーザー定義の番号に基づいてJavaScriptオブジェクトを作成する必要があります。したがって、ユーザーが20を定義した場合、20個の変数を作成する必要があります。

var interval_1=0, interval_2=0, interval_3=0, interval_4=0, interval_5=0... interval_20=0;

オブジェクトの名前を動的に作成できるようにするにはどうすればよいですか?

for (i=0; i<=interval; i++){
    var interval_ + i.toString() = i;
}
4

4 に答える 4

4

えーと、配列を使いますか?

for( i=0; i<=count; i++) array[i] = i;
于 2012-08-08T01:11:20.987 に答える
3

配列を使用します。

var i, count, interval = [];

// user defines count, 20 for example
count = 20;

for (i = 0; i < count; i++) {
    interval.push(i);
}

// interval[0] === 0
// interval[19] === 19
// interval.length === 20

これはインデックスを0から開始し、カウント-1に上がることに注意してください。iを1から開始しない限り、i<=countを使用しないでください。

これが説明するjsFiddleです。F12キーを押して、ほとんどのブラウザーで開発ツールを開き、コンソールを確認するか、console.log()をalert()に変更します。

リンク: http: //jsfiddle.net/willslab/CapBN/1/

または、値ごとにプロパティを持つ単一のオブジェクトを設定することもできます。

var i, count, intervals = {};

count = 20;

for (i = 0; i < count; i++) {
    intervals["interval_" + i] = i;
}

//intervals.interval_0 === 0
//intervals.interval_19 === 19)

リンク: http: //jsfiddle.net/willslab/EBjx7/2/

于 2012-08-08T01:49:15.143 に答える
2
for (i=0; i<=20; i++){
    window["interval_" + i.toString()] = i;
}
于 2012-08-08T01:16:59.530 に答える
1

Javascript変数は、次の方法で作成できます。

  1. 変数宣言、例えばvar x;
  2. 宣言されていない変数に値を割り当てる。例:y = 'foo';
  3. 正式なパラメータリストの識別子。例:function bar(x, y, z);
  4. evalを使用します。例:eval( 'var x = 4');

他のすべてが失敗し、5つの変数を言いたい場合は、次のことができます。

var s = [];
var i = 5;
while (i--) {
  s[i] = 'a' + i;
}

eval('var ' + s.join(',') + ';');

alert(a0); // shows undefined

a0が定義されていない場合、最後のステップで参照エラーがスローされます。

もちろん、あなたが今抱えている問題は、それらにアクセスする方法です。それらがグローバル変数として作成されている場合は、次を使用できます。

globalObj['a' + i];

ここで、globalObjは通常ウィンドウですが、変数オブジェクトにアクセスできないため、関数変数にアクセスするのに相当するものはありません。

したがって、通常の解決策は、プロパティを反復処理して名前がわからないものを見つけることができる配列またはオブジェクトに物を配置することです。

于 2012-08-08T01:21:42.057 に答える