0

以下のコードでは、indexOf()は常にを返し-1ます。検索対象の配列には、確実に値が含まれています。

配列に文字列形式が含まれている場合に備えて、チェックされた整数を文字列に変換しようとしましたが、運がありません。

誰かが素晴らしい光を当てることができれば!

AS3

var c:int = 0;
var storedCachesShared:SharedObject = SharedObject.getLocal("cacheStore");
var storedCaches:Array = storedCachesShared.data.cacheArray;
trace(storedCaches); // 1, 2


trace(storedCaches.indexOf(c+1)); // Always returns -1

if(storedCaches.indexOf(c+1) < 0){
    storedCaches.push([c+1]);
    storedCachesShared.flush();
}

ニック、ありがとう

4

1 に答える 1

2

この行は問題があるように見えます。既存の配列の最後に配列を([]で囲んだように)追加しています。

storedCaches.push([c+1]);

私はあなたがintを追加することを意味していると思うので、これが必要です:

storedCaches.push(c+1);

indexOfはintを探しているが、storedCachesは配列の配列であるため、-1を返します。

于 2013-02-09T12:02:53.463 に答える