カスタムの単純な高さマップ生成を JavaScript で記述しようとしています。これまでのところ、コードを書き留めましたが、道を塞いでいる非常に奇妙な何かが発生しました。それがバグなのか、それとも私が盲目なのかはわかりません。コードの一部は次のとおりです。
function fillNeighboursHill(life) {
//...
life--;
neighbours = this.getNeighbours();
neighbourstring = 'Before:'+neighbours.length+'\n';
for (var i=0; i < neighbours.length; i++) {
//do something
neighbours[i].fillNeighboursHill(life);
}
neighbourstring += 'After:'+neighbours.length+'\n';
alert(neighbourstring);
}
これは、自分自身を数回再帰的に呼び出す関数です。ただし、neighbourstring を見ると、このパターンの最後に常にアラートが表示されることが予想されます。
変更前:8 変更
後:8
これはほとんどすべての場合に当てはまりますが、時々私は得るでしょう
変更前:8 変更
後:8 変更
後:8
理解できない理由で。私にとっては、関数の下部が 2 回実行されることを意味するため、意味がありませんが、そのような動作を強制するものは何もありません。何か不足していますか?
私の問題に関するヒントをいただければ幸いです。