У меня есть массив объектов. Каждый объект имеет свойство, называемое именем. Я хочу эффективно удалить объект с определенным именем из массива. Это лучший способ?Более эффективный способ удаления элемента из массива в ActionScript 3
private function RemoveSpoke(Name:String):void {
var Temp:Array=new Array;
for each (var S:Object in Spokes) {
if (S.Name!=Name) {
Temp.push(S);
}
}
Spokes=Temp;
}
Одна важная вещь в этом решении: она будет работать только если каждое «имя» уникально. Если есть несколько объектов с тем же именем, таблица поиска будет терпеть неудачу, по крайней мере, если она построена так. – Quasimondo
интересно ... так что у вас в основном есть два списка с дублирующимися данными ... в общем, было бы лучше просто использовать таблицы поиска и обойтись без массивов для этих ситуаций? работает ли это только потому, что объект имеет свойство 'name' или метод indexOf ищет в каждом свойстве свойства объекта? – mga
Да, если вам не нужен массив для других целей (например, сортировка или доступ к элементам по индексу), в этом случае вы можете просто использовать таблицу поиска. indexOf находит экземпляры объекта. В этом случае для сравнения не используется «имя». Имя используется как хэш в таблице поиска. – Quasimondo