我用 php 创建了几个 javascript 数组,它们的调用如下:
pricesArray_230
pricesArray_350
...etc...
我现在想访问这些数组,但我不知道如何包含动态部分。
我现在的代码不起作用:
newPrice = pricesArray_+productId+[currentSimpleProduct][0];
其中 productId 是动态部分,代表 230、350 或任何其他数字。
你们中有人知道如何动态调用这些数组吗?
我用 php 创建了几个 javascript 数组,它们的调用如下:
pricesArray_230
pricesArray_350
...etc...
我现在想访问这些数组,但我不知道如何包含动态部分。
我现在的代码不起作用:
newPrice = pricesArray_+productId+[currentSimpleProduct][0];
其中 productId 是动态部分,代表 230、350 或任何其他数字。
你们中有人知道如何动态调用这些数组吗?
为避免eval
,假设它们pricesArray_*
是全局变量,您可以使用:
window['pricesArray_' + productId][currentSimpleProduct][0]
更好的是,更新您的动态生成的代码,以便它创建一个对象或数组而不是变量:
var pricesArrays = {
'230': {...},
'350': {...},
// etc
}
如果您在浏览器中,并且变量在全局范围内,则可以使用括号表示法,例如:
foo = window['pricesArray_'+productId[currentSimpleProduct][0]]
你必须使用eval
:
newPrice = eval('pricesArray_' + productId)[currentSimpleProduct][0];
但是, eval 可能会出现问题,因此我建议改用对象。这将要求您更改 PHP 代码以输出如下内容:
var arrays = {
product230 : [], // array here
product350 : [] // array here, etc.
}
然后你可以使用:
newPrice = arrays['product' + productId][currentSimpleProduct][0];