使用javascript获取动态创建的变量

时间:2013-08-14 19:43:54

标签: javascript variables dynamic

我用php创建了几个javascript数组,调用如下:

pricesArray_230
pricesArray_350
...etc...

我现在想要访问这些数组,但我不知道如何包含动态部分。

我的代码现在,这是行不通的:

newPrice = pricesArray_+productId+[currentSimpleProduct][0];

其中productId是动态部分,代表230,350或任何其他数字。

你们有没有想过如何动态调用这些数组?

3 个答案:

答案 0 :(得分:3)

要避免eval,假设pricesArray_*全局变量,您可以使用:

window['pricesArray_' + productId][currentSimpleProduct][0]

更好的是,更新动态生成的代码,以便创建对象或数组而不是变量:

var pricesArrays = {
    '230': {...},
    '350': {...},
    // etc
}

答案 1 :(得分:3)

如果您在浏览器中,并且变量位于全局范围内,则可以使用括号表示法:

foo = window['pricesArray_'+productId[currentSimpleProduct][0]]

答案 2 :(得分:1)

您必须使用eval

newPrice = eval('pricesArray_' + productId)[currentSimpleProduct][0];

但是,eval可能会有问题,所以我建议使用对象。这将要求您更改PHP代码以输出如下内容:

var arrays = {
    product230 : [], // array here
    product350 : [] // array here, etc.
}

然后你可以使用:

newPrice = arrays['product' + productId][currentSimpleProduct][0];