Search code examples
javascriptactionscript-3flash

how to fill in the value in the array


i have code like this in actionscript3,

var map: Array = [
                  [[0,1,0],[0,1,0]],
                  [[0,1,0], [0,1,0]]]; 
var nom1: int = 0;
var nom2: int = 0;
var nom3: int = 1;
var nom4: int = 18;
stage.addEventListener (Event.ENTER_FRAME, beff);
function beff (e: Event): void
{
  map[nom1][nom2][nom3] = nom4
}
stage.addEventListener (MouseEvent.CLICK, brut);
function brut(e: MouseEvent):void 
{
 trace (map)
}

when run, it gets an error in its output

what I want is to fill in each "1" value and not remove the "[" or "]" sign

so when var nom1, var nom2 are changed

Then the output is

[[[0,18,0],[0,18,0]],
 [[0,18,0],[0,18,0]]]

please helps for those who can solve this problem


Solution

  • If what you want to achieve is to replace every 1 by 18 in this nested array, you could try :

    for (var i = 0; i < map.length; i++) {
        var secondLevel = map[i];
        for (var j = 0; j < secondLevel.length; j++) {
            var thirdLevel = secondLevel[j];
            for (var k = 0; k < thirdLevel.length; k++) {
                if (thirdLevel[k] === 1) {
                    thirdLevel[k] = 18;
                }
            }
        }
    }
    

    Note that, this would only work for nested arrays with 3 levels of depth