这段代码有什么问题?任何人都可以帮忙吗?
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.
答案 0 :(得分:3)
第一次执行循环时,您使用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
注意:在您的代码中使用eval
之前,请务必先阅读this question and the answers to that question。
答案 1 :(得分:0)
试试此代码
var read=new Array("i=10","j=20","k=i*j");
for(var index=0;index<read.length;index++)
{
alert(eval(read[index]));
}
答案 2 :(得分:-1)
当循环执行时,在i=10
的第一次执行时,i
变量设置为10
;因为条件i<read.length
(此处为...... 10<3
)仍为假,所以循环将被终止。
请参阅eval()
教程。