1 つの配列からエントリをスプライスすると、別のアレイから同じエントリがスプライスされます... 何が起こっていますか?
private static var words:Array = new WordFile().toString().split(/\n/);
private static var wordsTemp:Array;
public static function checkWord (word:String):Boolean
{
var truefalse:Boolean = wordsTemp.indexOf(word+"\r".toLowerCase()) > -1;
trace (words.length)
wordsTemp.splice(wordsTemp.indexOf(word+"\r".toLowerCase()), 1);
trace (words.length)
return truefalse
}
public static function resetArrays :void
{
wordsTemp = words
}
このコードでは、新しいゲームが開始されるたびに resetArrays 関数を呼び出します。ゲームに入ると、プログラムは単語を渡して checkWord を呼び出します。ワード配列で見つかった場合は、一時配列からスプライスします。ただし、実行すると、2 つのトレースで 2 つの異なる数値が生成され、2 番目の数値は 1 つ低くなります (単語が配列で見つかったと仮定します)。リセットされる一時的な配列をつなぎ合わせているので、これは非常に奇妙に思えますが、変更されていないはずの配列をトレースすると(私が示している以外の操作はありません)一時配列のスプライスによって変更される...
何かご意見は?