2013-03-18 67 views
0

下午好。檢查數據提供者中是否存在物品

我需要在添加數據提供者之前檢查項目是否已經存在。但indexOf方法總是返回-1 wheen我試着做這個檢查我的數組中。任何人都可以幫助我?謝謝。

​​

回答

0

鑑於代碼;你提供了;我不希望indexOf返回任何東西,但-1;除非在windowAddContact.selectedContacts中擁有多個相同對象的實例;這是可能的,但似乎不太可能。

contacts數組從空開始,所有這些代碼都會將項目從一個集合複製到一個數組中。試試這個:

var contacts:Array = new Array(); 
contacts.add(windowAddContact.selectedContacts[0]); 
for each(var i:Object in windowAddContact.selectedContacts) { 

    if(contacts.indexOf(i) == -1) { 

    contacts.push(i);    
    } 
} 

我敢打賭你會看到indexOf(i)返回一個非-1的東西。不過,我不清楚你想做什麼。爲什麼循環是必要的?難道你不能這樣做:

contactList.dataProvider = windowAddContact.selectedContacts; 
+0

謝謝你的幫忙。我不能這樣做: contactList.dataProvider = windowAddContact.selectedContacts; ,因爲我需要在添加之前檢查我的dataProvider中的聯繫人是否已經存在。 indexOf方法不適用於數組聯繫人。我不知道爲什麼。我試圖創建一個方法進行驗證: – Dreyfi 2013-03-19 13:04:24

+0

var contacts:Array = new Array(); 每個(VAR I:在windowAddContact.selectedContacts對象){ 如果(contacts.indexOf(ⅰ)== - 1){ contacts.push(ⅰ); } } contactList.dataProvider = contacts; 公共函數TOADD(OBJ:對象):布爾{ \t \t \t \t 爲每個(VAR I1:在接觸對象){ \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t (var i2:int = 0; i2 Dreyfi 2013-03-19 13:11:19

+0

很抱歉,如果我被小白太多。我是新的發展。我不知道爲什麼識別在這篇評論中不起作用。 – Dreyfi 2013-03-19 13:22:22