這段代碼有什麼問題?任何人都可以幫忙嗎?爲什麼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.
這段代碼有什麼問題?任何人都可以幫忙嗎?爲什麼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 <3,條件失敗 –