2013-02-09 2 views
0

В приведенном ниже коде indexOf() всегда возвращает -1. Искаженный массив имеет значения внутри.AS3 Value-search a Array с использованием indexOf()

Мы попытались преобразовать провероченное целое число в строку, если массив имеет строковые форматы внутри, и удачи там нет.

Если кто-нибудь может пролить свет, это было бы здорово!

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(); 
} 

Большое спасибо, Ник

ответ

2

Эта линия выглядит проблематичным. Это добавляет массив (как вы окружили его с []) к концу существующего массива:

storedCaches.push([c+1]); 

Я думаю, что вы имеете в виду, чтобы добавить Int, так что вам нужно это:

storedCaches.push(c+1); 

indexOf возвращает -1, потому что он ищет int, но storedCaches - это массив массивов.

+0

Глупые ошибки! Спасибо за груз. –