数组在JS中表现得很奇怪

时间:2013-08-31 14:14:18

标签: javascript arrays

好的我在Javascript中有一个简单的for循环,它会创建一个数组,我需要这样做,这样我就可以交换它们来创建随机位置。但无论如何这里是代码

            var aliveMonsters = [];
    var deadMonsters = 0;
    for( var i = 0; i < monsterAmount; i++ )
    {
        if( monsters[i].hp > 0 )
        {
            var place = i - deadMonsters;
            var placed = i - deadMonsters;
            aliveMonsters[place] = placed;
        }
        else
        {
            deadMonsters -= 1;
        }
        //console.log(i);
    }
            console.log(aliveMonsters);

当所有3个怪物都还活着时,它会被打印出来

[0, 1, 2] 

哪个是正确的,但是当其中一个死亡(0,1或甚至2)时,数组就变成了这个

[0, 3: 3] 

每次玩家移动时都会调用此代码,并且在怪物死亡(HP设置为0)之前它会正常工作。有人能看出为什么会这样吗?

这是一张图片,不用担心显示未定义的数组。 enter image description here

1 个答案:

答案 0 :(得分:0)

使用deadMonsters + = 1更正了错误