我正在循环一个名为 shopData 的数组,需要使用该数组中的值来创建新变量。 在循环中,我正在尝试这样的事情:
shop_(shopData[i].shopName).keyword = shopData[i].keyword;
但我在()中的部分遇到问题,似乎找不到合适的语法。
假设 shopData [i] .shopName =“foo”我需要创建一个名为的变量:
shop_foo.keyword = value
或 shopData [i] .shopName =“orange”:
shop_orange.keyword = value
AS2是否可以实现这一目标?
答案 0 :(得分:2)
是的,这是可能的。您必须创建变量名称的字符串表示形式并使用[]括号:
this["shop_" + shopData[i].shopName].keyword = shopData[i].keyword;
所有shop_...
变量必须是类实例的成员变量(在上例中它们是this
的成员),或者您必须创建一个简单的Object容器:
var shops:Object = {};
shops["shop_" + shopData[i].shopName].keyword = shopData[i].keyword;
只需编写["shop_" + shopData[i].shopName]
来访问本地变量就不会编译。