2013-02-20 73 views
1

的評估變量我有下面的代碼中,我想EVAL串聯,然後檢查是否它定義與否,我無法檢查是否未定義

var image1="images/pic1.png"; 
var image2="images/pic2.png"; 
var image3="images/pic3.png"; 
var image4="images/pic4.png"; 
/* 
var image5=""; 
var image6=""; 
var image7=""; 
var image8=""; 
var image9=""; 
var image10=""; 
var image11=""; 
var image12=""; 
*/ 

var imageLink; 
var count=12; 

for (i=0;i<count;i++){ 

    var imageLink=eval("image"+(i+1)); 

    if (typeof imageLink === "undefined"){ 
     alert("imageLink is undefined"); 
     imageLink=""; 
    } 

所以最後一塊不工作。

+1

只需使用數組。這裏的'eval'是有問題的編碼。這段代碼的一個問題是它會拋出一個ReferenceError。比較'x'和'window.x',其中'x'沒有被設置(並且有很多重複的東西)。 – 2013-02-20 11:14:58

+0

無論你在代碼中使用'eval',你應該完全重寫那段代碼,而不是試圖解決發生的問題。 – Christoph 2013-02-20 11:17:54

回答

0
var images = []; 

images.push('images/pic1.png'); 
images.push('images/pic2.png'); 
images.push('images/pic3.png'); 
images.push('images/pic4.png'); 

var imageLink = ''; 

for (i=0; i<images.length; i++){ 

    imageLink = images[ i ]; 

    if (!imageLink){ 
     alert('imageLink is undefined'); 
     imageLink = ''; 
    } 
} 

在評論建議,把數據的數組,然後循環各元素的,這樣一來你的代碼變得更清潔,你不必做一個eval。

+0

Muchos gracias :) – 2013-02-20 11:51:40

+0

沒問題,PS:確實接受的答案是正確的,我注意到你以前的問題也沒有被接受的答案:) – 2013-02-20 12:18:57