如何通过字符串名称引用对应的数组?
解决通过字符串名称引用对应数组的问题
嘿,我完全懂你这种卡了好几天、连搜索关键词都摸不准的憋屈感!你现在的核心需求就是:拿到一个字符串后,要引用和这个字符串同名的数组对吧?直接用字符串当变量名确实行不通,但咱们换个思路——用对象做映射表就能完美解决。
具体怎么做?
- 先把所有数组放进一个映射对象
把你的20个数组和对应的字符串名称一一对应,存到一个对象里。对象的「键」就是你那20个字符串,「值」就是对应的数组。举个例子:
// 假设你原来的数组是这些: const userList = [101, 102, 103]; const productList = ["phone", "laptop", "tablet"]; // ... 剩下18个类似的数组 // 构建映射对象 const arrayDictionary = { "userList": userList, "productList": productList, // 把剩下的18组都按这个格式加进来 };
- 通过字符串名称获取对应数组
现在你拿到oldArray[0](比如就是"userList"这个字符串),直接用它当对象的键去取值就行:
const targetArrayName = oldArray[0]; // 得到你选中的字符串名称 const newArray = arrayDictionary[targetArrayName]; // 这就拿到对应的数组啦!
为啥不直接用字符串找变量?
可能你会想到用window[targetArrayName]这种方式去全局找变量,但真的不推荐——这会让代码变得混乱,还容易引发意外的变量冲突,用对象映射是更规范、更安全的做法。
如果数组是动态生成的?
要是你的数组是代码里动态创建的,那创建的时候直接往映射对象里加就行,不用单独定义变量:
const arrayDictionary = {}; // 动态创建并添加 arrayDictionary["userList"] = [101, 102, 103]; arrayDictionary["productList"] = ["phone", "laptop", "tablet"]; // ... 继续添加其他数组
这样不管你点哪个按钮,只要拿到对应的字符串,就能轻松切换到目标数组了!
内容的提问来源于stack exchange,提问作者Noah
相关产品推荐
相关产品推荐

