javascript - 在 for 循环中使用变量更改数组

标签 javascript arrays for-loop

是否可以更改数组,通过外部变量循环,该变量将数组名称作为字符串提供?

我的示例循环遍历变量名称本身。 我想这只是一个语法问题?非常感谢您的帮助。

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]);
  }
});

https://jsfiddle.net/Loeevw51/

最佳答案

通过将名称作为字符串来引用变量可以使用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/

相关文章:

c# - 如何在C#中将项目添加到数组

javascript - 如何从提取和 promise 中获取HTTP错误详细信息和文本?

javascript - onClick 调用 fetch 函数时的 ReactJS 组件生命周期。单击时状态对象消失

java - 需要读入 ArrayList 并将正数和负数分开

javascript - For 循环 - 语法错误

Java:使用for循环用特定范围内的随机整数填充数组

javascript - 突出显示当前页面菜单项。当选择子菜单项时也突出显示主菜单项

javascript - 正确的查询结构。没有得到日志输出

c - 避免二维数组中的重复项?

javascript - 在javascript中自定义排序,基于另一个字段排序