Javascript按字符串名称获取数组

时间:2015-09-08 12:14:13

标签: javascript arrays

我总共有5个阵列。 用户将根据我们执行操作所需的用户选择来选择阵列的名称。

2015-09-08 15:04:46.986 Test Project[1239:60b] +[Test_Project.GameScene nodeWithFileNamed:]: unrecognized selector sent to class 0x100106d30
2015-09-08 15:04:46.988 Test Project[1239:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[Test_Project.GameScene nodeWithFileNamed:]: unrecognized selector sent to class 0x100106d30'
*** First throw call stack:
(0x18614e950 0x1926541fc 0x1861534f0 0x186151330 0x18607108c 0x1000fdefc 0x1000fd3d0 0x1000fd65c 0x189118670 0x1891183f4 0x18924fe68 0x1891aa6a0 0x18914d454 0x18929fe78 0x1891d2a10 0x18911cd30 0x18918f83c 0x18918c148 0x1891859ec 0x1891198cc 0x189118ad0 0x189185044 0x18bd33504 0x18bd33030 0x18610e890 0x18610e7f0 0x18610ca14 0x18604d6d0 0x1891841c8 0x18917efdc 0x1000fe6fc 0x192c47aa0)
libc++abi.dylib: terminating with uncaught exception of type NSException

当用户选择下拉列表时,它将具有值p1s3。所以我需要选择这个特定的数组并对此执行操作。 任何人都可以在这方面提出建议。

由于

2 个答案:

答案 0 :(得分:4)

改为使用对象:

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]

答案 1 :(得分:0)

解决方案的最佳方法是使用一个对象而不是多个变量将其称为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 = as string 'p1s5''p1s2'等,这是从select下拉列表中传递的。您可以选择pickUpArray[val]

如果你没有选择更改这个可变数据,你可以调用eval(val),其中val是字符串'p1s5''p1s2'等,这是从选择下拉列表中传递但非常不可取的