簡體   English   中英

如何通過Javascript函數參數傳遞數組

[英]How to pass an array through Javascript Function Arguments

我在stackoverflow( Pass Array Thread 2)和( Pass Array Thread 1 )以及其他一些站點上找到了幾個其他類似的線程,但是我要么不理解它們,要么它們不能完全回答我的問題,或者我做了不知道如何將其實現到我的代碼中。

我有以下代碼,應基於一些數組為游戲創建地圖:

function createMap(level) {
   var map = document.getElementById('map');
   mapWidth = parseInt(level[0]);
   mapHeight = parseInt(level[1]);
   map.innerHTML = '';
   rowNumber = 1;
   tileID = 1;
   var consoleHelp = level[7];
   console.log(k+' and value is '+consoleHelp);
   k = 1;
for (k = 1; k <= mapHeight; k++) { // repeat below loop until specified height is reached
 for (k = 1; k <= mapWidth; k++) { // create a row of tiles based on the specified width of the array
    console.log('Row '+k+' created')
    if (rowNumber == 1) {
        k++;
    }
    else {
        k--;
    }
    if (level[k] == 'w') {
        map.innerHTML += '<span id="'+rowNumber+'-'+tileID+'">desert<image class="tiles" src="desert.png"></span>';
    }
    else if (level[k] == 'g') {
        map.innerHTML += '<span id="'+rowNumber+'-'+tileID+'"><image class="tiles" src="grass.png"></span>';
    }
    else {
        console.log('crap dis did not work');
        var consoleHelp = level[k];
        console.log(k+' and value is '+consoleHelp);
    }
    if (rowNumber == 1) {
        k--;
    }
    else {
    k++;
    }
    tileID++
  }
  rowNumber++
  level = level + '_1';
  map.innerHTML = "<br>";
}
spawnTile();
}

和變量數組(不完整,但您可以理解):

var map_beginning_1 =         ['20','10','w','w','w','w','w','w','w','w','w','w','w','w','w','w','w','w','w','w','w','w'];
var map_beginning_1_1 =                 ['w','g','g','g','g','g','g','g','g','g','g','g','g','g','g','g','g','g','g','w'];

我的問題是我打電話

createMap('map_beginning_1')

並沒有任何反應。 沒有錯誤,但沒有其他任何反應。 我進行了測試,看得到了什么,“ level [7]”的值為“ i”,“ level 1 ”的值為“ a”,這是“ map_beginning_1”中字符的位置。 有人可以向我解釋如何或者是否有可能通過Javascript函數參數可變地傳遞數組以及如何做到嗎? 而且,如果不可能,您能為我嘗試做的事情提出其他選擇嗎? 最好使用Javascript,但如果需要的話,我可以使用Jquery。

嘗試createMap(map_beginning_1) 嘗試傳遞數組但實際上傳遞字符串時,請丟失' (引號)。

您已將字符串而非函數傳遞給函數,請嘗試以下操作,刪除單引號。

createMap(map_beginning_1);

暫無
暫無

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

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