问题描述
我在actionscript3中有这样的代码
var map: Array = [
[[0,1,0],[0,0]],[[0,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)
}
运行时,它的输出出现错误
我想要的是填写每个“ 1”值而不删除“ [”或“]”符号
因此,当var nom1,var nom2更改时
然后输出为
[[[0,18,0]]]
请帮助那些可以解决此问题的人
解决方法
如果要实现的是在此嵌套数组中将每1个替换为18,则可以尝试:
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;
}
}
}
}
请注意,这仅适用于具有3个深度级别的嵌套数组