为什么eval()不适用于数组
这段代码有什么问题?任何人都可以帮忙吗?为什么eval()不适用于数组
var read=new Array("i=10","j=20","k=i*j");
for(var i=0;i<read.length;i++)
{
alert(eval(read[i]));
}
期待输出:
alert three times with values 10,20,200.
但实际输出:
But alert Once with value 10.
当循环执行的第一次,你要设置i = 10
,与eval
。所以环路立即爆发。
所以,你可能想改变循环变量别的东西,像这样
var read = new Array("i=10","j=20","k=i*j");
for(var idx=0; idx < read.length; idx++)
{
console.log(eval(read[idx]));
}
输出
10
20
200
注:请确保您阅读this question and the answers to that question,前在你的代码中使用eval
。
var read = new Array(“i = 10”,“j = 20”,“k = i * j” ) for(var index = 0; i
即使这样做不起作用。 – user2807091
@ user2807091您必须更改条件并增加部分。检查我的答案。 – thefourtheye
while循环正在执行时,在第一次执行i=10
时i
变量设置为10
;因此条件i<read.length
(这里... 10<3
)保持为假,因此循环将被终止。
请参阅eval()
教程。
why - one .. ??? –
试试这个代码
var read=new Array("i=10","j=20","k=i*j");
for(var index=0;index<read.length;index++)
{
alert(eval(read[index]));
}
你怎么看'的eval()'呢? –
定义“不工作”。这不是一个问题描述。 – deceze
第一个循环'alert(eval(i = 10))',下一步10