我在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。
答案 0 :(得分:2)
试试createMap(map_beginning_1)
。丢失'
(引号),因为您尝试传递数组但实际上传递的是字符串。
答案 1 :(得分:2)
您已将字符串传递给函数而不是变量请尝试以下操作,删除单引号。
createMap(map_beginning_1);