AS3使用indexOf()值搜索数组

时间:2013-02-09 11:37:09

标签: arrays actionscript-3 flash variables shared-objects

在下面的代码中,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();
}

非常感谢,尼克

1 个答案:

答案 0 :(得分:2)

这条线看起来有问题。它正在添加一个数组(当你用[]包围它时)到现有数组的末尾:

storedCaches.push([c+1]);

我认为你的意思是添加一个int,所以你需要这个:

storedCaches.push(c+1);

indexOf返回-1,因为它正在寻找一个int,但storedCaches是一个数组数组。