如何获取变量的名称?
假设我有一个空变量:
var myvariable;
如何获取变量名称:
alert(this_is_what_i_am_looking_for);
将显示:
myvariable
修改
也许我过于复杂了。我真正的问题是我有这两个变量:
var firstVariable;
var secondVariable;
我想创建一个字面上具有此名称的第三个变量:
var firstVariablesecondVariable;
EDIT2:
感谢答案,太多信息,我必须彻底查看它们。
这就是我所拥有的:
<div></div>
<div></div>
<div></div>
var i = 0;
var q = 0;
$('div').each(function() {
var qi;
i++;
});
所以我想创建三个变量:var 00; var 01; var 02; 然后我将使用ajax加载更多div并执行:
q++;
i=0;
所以当我第二次应用每个函数时,我还有三个变量:var 10; var 11; var 12;
答案 0 :(得分: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;
答案 1 :(得分: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";
答案 2 :(得分: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