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
Advertisement
Answer
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