是否可以更改数组,通过外部变量循环,该变量将数组名称作为字符串提供?
我的示例循环遍历变量名称本身。 我想这只是一个语法问题?非常感谢您的帮助。
HTML
<ul>
<li data-array="one">Array One</li>
<li data-array="two">Array Two</li>
<li data-array="three">Array Three</li>
</ul>
JS
var one = ['One-One','One-Two','One-Three'];
var two = ['Two-One','Two-Two','Two-Three'];
var three = ['Three-One','Three-Two','Three-Three'];
$('li').click(function(){
var selectedArray = $(this).attr('data-array');
for (var i = 0; i < selectedArray.length; i++) {
console.log(selectedArray[i]);
}
});
最佳答案
通过将名称作为字符串来引用变量可以使用eval()
来完成,但是如果您已经达到需要这样做的程度,您可以应该重新设计你的代码。
一个更简单、更快、更干净的解决方案是使用对象(如果可以的话):
var arrays =
{
one: ['One-One','One-Two','One-Three'],
two: ['Two-One','Two-Two','Two-Three'],
three: ['Three-One','Three-Two','Three-Three']
};
然后您可以使用 arrays['one']
或 arrays.one
访问其元素。
Updated fiddle .
关于javascript - 在 for 循环中使用变量更改数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30150197/