2014-01-17 4 views
-1

이 코드의 잘못된 점은 무엇입니까? 누구든지 도와 줄 수 있습니까?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. 

그러나 실제 출력 :

루프가 eval와 함께, 당신은 i = 10을 처음으로 설정을 실행
But alert Once with value 10. 
+3

당신이'평가()'무엇을 생각이 코드를 시도? –

+1

"작동하지 않음"을 정의하십시오. 그것은 문제의 설명이 아닙니다. – deceze

+0

첫 번째 루프 'alert (eval (i = 10))', 다음 10 단계 <3, 조건 실패 –

답변

3

. 따라서 루프가 즉시 중단됩니다.

그래서, 당신이

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을 사용하십시오.

+0

var read = new Array ("i = 10", "j = 20", "k = i * j") (var index = 0; i user2807091

+0

이렇게해도 작동하지 않습니다. – user2807091

+0

@ user2807091 조건을 변경하고 파트를 증가시켜야합니다. 내 대답을 확인해. – thefourtheye

-1

루프가 실행되는 동안 i=10의 첫 번째 실행에서 i 변수는 10으로 설정됩니다. 따라서 i<read.length (여기 ... 10<3) 조건으로 인해 루프가 종료됩니다.

eval() 자습서를 참조하십시오.

+0

을 사용하십시오. –

0

var read=new Array("i=10","j=20","k=i*j"); 
for(var index=0;index<read.length;index++) 
{ 
alert(eval(read[index])); 
} 
관련 문제