在下面的代码中,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();
}
非常感谢,尼克
答案 0 :(得分:2)
这条线看起来有问题。它正在添加一个数组(当你用[]包围它时)到现有数组的末尾:
storedCaches.push([c+1]);
我认为你的意思是添加一个int,所以你需要这个:
storedCaches.push(c+1);
indexOf返回-1,因为它正在寻找一个int,但storedCaches是一个数组数组。