下午好。
在添加数据提供者之前,我需要检查项目是否已存在。但是当我尝试在我的数组中执行此检查时,indexOf方法总是返回-1。谁可以帮助我?谢谢。
var contacts:Array = new Array();
for each(var i:Object in windowAddContact.selectedContacts) {
if(contacts.indexOf(i) == -1) {
contacts.push(i);
}
}
contactList.dataProvider = contacts;
答案 0 :(得分: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;