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 返回 -1 因为它正在寻找一个 int 但 storedCaches 是一个数组数组。

于 2013-02-09T12:02:53.463 回答