2
var b = '1';

変数 b の内容を使用して変数名を作成するにはどうすればよいですか? これを a each ループで行っているため、b が変更されます。

最終製品を次のようにしたいと考えています。

var trip1 = '';

どうすればそのようなことを達成できますか?

var trip + b = '';
var trip.b = '';
4

4 に答える 4

3

いいえ。ただし、オブジェクトのプロパティを使用して実行できます。

var obj = {};
obj.b = '1'
obj['trip' + obj.b] = '';

// or

var obj = {};
var b = '1'
obj['trip' + b] = '';

JavaScript では、次の 2 つの方法でプロパティにアクセスできます。

  1. ドットとリテラル プロパティ名を使用しobj.trip1ます。

  2. ブラケットと文字列プロパティ名を使用しますobj['trip1']

後者の場合、文字列は文字列リテラルである必要はなく、任意の式の結果である可能性があるため、上記の例です。

于 2012-12-08T14:36:10.060 に答える
1

私は各ループでこれをやっています

それらを繰り返し処理しているため、これを行う最善の方法は配列を使用することです。

var trip = [1,2,3,4,5];
for (var i = 0; i < trip.length; i++){
    alert(trip[i]);
}

質問に答えるために、値をオブジェクトのプロパティとして保存できます。

var obj = {};
var b = '1';
obj['trip' + b] = "";

これをグローバル スコープで行う場合は、変数をグローバル オブジェクトのプロパティとして追加することもできます。

var b = '1';
window['trip' + b] = "";

trip1; // == ""
于 2012-12-08T14:36:28.543 に答える
0

eval()メソッドを探しているようです。

var b = '1';
(eval('var trip'+b+' = 3')); // Is the same as writing var trip1 = 3;
console.log(trip1); 
//Output of variable trip1 is 3

ただし、なぜeval();であるかをグーグルで簡単に検索してください。このテクニックを採用する前に悪いです。

于 2012-12-08T14:54:58.363 に答える
0

次のような動的キーを使用して、window オブジェクトを介してグローバル変数にアクセスできます。

var b = '1';

trip1 = 'hello';

console.log(window['trip'+b]);
于 2012-12-08T14:36:41.490 に答える