簡體   English   中英

Javascript數組鍵值作為變量

[英]Javascript array key value as a variable

我試圖建立一個鍵數組,這些鍵是字符串而不是數字。 但是,當我嘗試這樣做時,該數組最終為null。

這是起作用的函數(其中的鍵只是一個簡單的數字“ i”:

function loadImages(arr, data, callBack){
                var count = 0;
                var img = new Array();

                for(var i in arr ){
                    var src = "\""+arr[i]+"\"";

                    img[i] = new Image();
                    img[i].src = arr[i];
                    img[i].onload = function(){
                        count++;
                        if(count == arr.length){
                            callBack(data, img);
                        }
                    }
                }
            } 

這是我嘗試使用的函數,但結果數組為空:

function loadImages(arr, data, callBack){
                var count = 0;
                var img = new Array();

                for(var i in arr ){
                    var src = "\""+arr[i]+"\"";

                    img[src] = new Image();
                    img[src].src = arr[i];
                    img[src].onload = function(){
                        count++;
                        if(count == arr.length){
                            callBack(data, img);
                        }
                    }
                }
            } 

我也嘗試通過以下方式定義“ src”:

var src = arr[i];

var src = "'"+arr[i]+"'";

有誰知道為什么它會導致null?

Javascript數組不適用於枚舉數組。 那就是您要在這里做的。 改用Object。

然后,您可以使用字符串作為鍵。

function loadImages( arr, data, callBack )
{
  var nCount = 0 ;
  var oImg = new Object() ;

  for ( i = 0; i < arr.lenght; i++ )
  {
    var sSrc = "\"" +arr[ i ]+ "\"" ;

    oImg[ sSrc ] = new Image() ;
    oImg[ sSrc ].src = arr[ i ] ;
    oImg[ sSrc ].onload = function()
                          {
                            count++;
                            if ( count == arr.length )
                            {
                              callBack( data, oImg ) ;
                              alert( oImg ) ;
                            }
                          }
  }
}

JAVASCRIPT

function loadImages(arr, data, callBack){
                var count = 0;
                var img = new Array();
                for(i=0; i<arr.lenght; i++ ){
                    var src = "\"" +arr[i]+ "\"";

                    img[src] = new Image();
                    img[src].src = arr[i];
                    img[src].onload = function(){
                        count++;
                        if(count == arr.length){
                            callBack(data, img);
                            alert(img);
                        }
                    }
                }
            }

嘗試這個..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM