0

変数の名前を取得するにはどうすればよいですか?

空の変数があるとしましょう:

var myvariable;

次のように変数名を取得するにはどうすればよいですか。

alert(this_is_what_i_am_looking_for);

表示されます:

myvariable

編集:

多分私は物事を過度に複雑にしています。私の本当の問題は、次の 2 つの変数があることです。

var firstVariable;
var secondVariable;

そして、文字通りこの名前を持つ 3 番目の変数を作成したいと思います。

var firstVariablesecondVariable;

EDIT2:

回答ありがとうございます。情報が多すぎます。徹底的に調べなければなりません。

これは私が持っているものです:

<div></div>
<div></div>
<div></div>

var i = 0;
var q = 0;

$('div').each(function() {
    var qi;
    i++;
});​

そこで、3 つの変数を作成したいと思います: var 00;var 01;var 02; 次に、ajax を使用してさらに div をロードし、次のようにします。

q++;
i=0;

したがって、each 関数を 2 回目に適用すると、さらに 3 つの変数があります: var 10;var 11;var 12;

4

3 に答える 3

3

変数名は識別子であり、その名前が何であるかを「尋ねる」ことはできません。できることは、次のように、識別子の内容で新しい変数を作成することです。

 var var1 = "variable1";
 var var2 = "variable2";

 // this will create an property/variable "variable1variable2" 
 // on the global namespace.
 window[var1 + var2] = "xyz";

 var content = variable1variable2; // content = xyz;
于 2012-09-02T18:37:36.610 に答える
2

おそらく、ハッシュテーブルを使用して名前を値にマップできます。最後に、値 barFooTest を持つ名前 barFoo がハッシュテーブルに追加されます。

var o = { bar: 'barTest' };
o.foo = 'fooTest';

var prevKey = '';
for(key in o)
{   
    prevKey = prevKey + '' + key ;
    alert(key + ': ' + o[key]);
}

o[prevKey] = "barFooTest";
于 2012-09-02T18:45:36.207 に答える
0

これは不可能です。あなたができることは、jsonオブジェクトを操作することです。

var myvars = {
   'firstVariable': 1,
   'secondVariable': 2,
   'firstVariablesecondVariable': function() { return this['firstVariable'] + this['secondVariable']; }
};


console.log(myvars['firstVariable'+'secondVariable']());
​

コードを実行する

編集用

var elements = [];
var myformat = function(n) { return (String(n).length == 1 ? '0' : '') + n; }
$('div').each(function(i, el) {
    elements.push(myformat(i));
});

console.log(elements);
​
// response ["00", "01", "02"] 

コードを実行する

編集II

ただし、変数に値を設定する場合は、次のことを試すことができます。

var elements = {}; // <- object
var myformat = function(n) {
    return (String(n).length == 1 ? '0' : '') + n;
}
$('div').each(function(i, el) {
    elements[myformat(i)] = el;
});

console.log(elements);​

Object
00: HTMLDivElement
01: HTMLDivElement
02: HTMLDivElement

コードを実行する

于 2012-09-02T18:41:34.697 に答える