我在 Stack Overflow 上看到过一些关于此问题的其他帖子,但答案似乎总是创建一个带有键/值对的对象。这似乎不是我目前的情况所需要的。我想要做什么:我有不同的数组,其中可能包含用户名。我想检查每个数组,看看用户名是否作为其中的值存在。如果是,我想要数组变量名称的字符串表示形式。例子:
var array = ['apple', 'orange', 'grape'];
var array2 = ['apple', 'pear', 'plumb']
member_arrays = new Array();
// I'd like this block to be dynamic in that i don't have to specify the array name
// in the inArray or member_arrays[member_arrays.length+1] (just loop through my arrays
// and add a string representation of the array name to the member_arrays array)
if ($.inArray( 'apple', array ) != -1)
member_arrays[member_arrays.length] = 'array';
if ($.inArray( 'apple', array2) != -1)
member_arrays[member_arrays.length] = 'array2';
// etc...
在 JavaScript 中你无法做到这一点。这就是为什么人们建议使用对象并将“变量”保留为对象中的属性。
顺便说一句,当您追加到数组时,您只需要长度,而不是长度 + 1:
member_arrays[member_arrays.length] = 'array';
数组是从零开始的,因此“下一个”槽始终是“长度”值。
edit— 好吧,在某些情况下你可以这样做:当你的变量是全局的时。任何名为“x”的全局变量也可以称为“window”的属性(对于 Web 浏览器中的代码):
var x = 3;
alert(window['x']); // alerts "3"
请避免为此目的使用全局变量:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)