1

連結を評価し、それが定義されているかどうかを確認する次のコードがあります。

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="";
    }

したがって、最後のピースは機能しません。

4

1 に答える 1

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 = '';
    }
}

コメントで推奨されているように、データを配列に配置してから、for の各要素を循環させると、コードがきれいになり、eval を実行する必要がなくなります。

于 2013-02-20T11:19:39.960 に答える