0

I have found a couple other similar threads on stackoverflow (Pass Array Thread 2) and (Pass Array Thread 1) as well as from a few other sites but I either did not understand them, they did not fully answer my question, or I did not know how to implement it into my code.

I have the following code which should create a map for a game based on some arrays:

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();
}

and the variable arrays (incomplete but you get the idea):

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'];

My problem is that I call in

createMap('map_beginning_1')

and nothing happens. There's no errors but nothing else happens. I did a test to see what it was getting and the value of "level[7]" is "i" and "level1" is "a", which is the location of the characters in "map_beginning_1". Can someone please explain to me how to or if it's even possible to variably pass an array through a Javascript function argument and how to do it? And if it isn't possible, can you suggest any alternatives for what I'm trying to do? Javascript is preferable but I can use Jquery if I must.

2
  • You are passing a string, not an array. Commented Jun 7, 2016 at 3:16
  • How do I pass an array rather than a string then? Commented Jun 7, 2016 at 3:16

2 Answers 2

2

You have passed a string into the function and not a variable please try the following, removing the single quotes.

createMap(map_beginning_1);
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks, I feel silly that I didn't notice this. It worked :) I'll accept your answer in 10 minutes when I can.
2

Try createMap(map_beginning_1). Lose the ' (quotes), as you are trying to pass an array but are actually passing a string.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.