2013-03-18 70 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