【问题标题】:Javascript get array by name of a string [duplicate]Javascript通过字符串的名称获取数组[重复]
【发布时间】:2015-09-08 12:14:13
【问题描述】:

我总共有 5 个数组。 数组的名称将由用户选择,根据我们需要执行操作的用户选择。

var p1s1 = ['5', '1', '6'];
var p1s2 = ['2', '4', '7'];
var p1s3 = ['9', '5', '2'];
var p1s4 = ['2', '5', '8'];
var p1s5 = ['7', '4', '2'];

当用户选择一个下拉菜单时,它的值为 p1s3。所以我需要选择这个特定的数组并对其执行操作。 任何人都可以在这方面提出建议。

谢谢

【问题讨论】:

  • 您可以将它们放在一个对象中,并通过键引用它们。按名称动态获取变量是灾难的根源,无论如何在 JS 中是不可能的。
  • 您需要有一个对象,它是key=>value 对的集合。在您的情况下,键将是用户选择的名称,值将是数组。我希望这会有所帮助...
  • 发帖前请先搜索。这个已经问了几十遍了,地面已经被彻底覆盖了。

标签: javascript arrays


【解决方案1】:

改用对象:

var obj = {
  p1s1: ['5', '1', '6'],
  p1s2: ['2', '4', '7'],
  p1s3: ['9', '5', '2'],
  p1s4: ['2', '5', '8'],
  p1s5: ['7', '4', '2']
}

然后这样访问数组:

obj[selected_value_from_dropdown]

【讨论】:

  • obj.p1s3,也是有效的
  • @A.T.是的,但该值来自其他地方并且是一个变量,所以答案是有效的
【解决方案2】:

解决解决方案的最佳方法是使用一个对象而不是多个变量,将其称为 pickUpArray

var pickUpArray = {
  p1s1 : ['5', '1', '6'],
  p1s2 : ['2', '4', '7'],
  p1s3 : ['9', '5', '2'],
  p1s4 : ['2', '5', '8'],
  p1s5 : ['7', '4', '2']
};

然后在您的逻辑中说您的值为 val 其中 val = 作为字符串 'p1s5''p1s2' 等,这是从选择下拉列表中传递的。你可以选择pickUpArray[val]

如果您无法选择更改此变量,您可以调用 eval(val),其中 val 为字符串 'p1s5''p1s2' 等,这是从选择下拉列表中传递的,但非常不建议使用。

【讨论】:

    猜你喜欢
    • 2021-08-09
    • 1970-01-01
    • 2014-05-19
    • 2012-05-04
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多