I tiene una matriz de objetos. Cada objeto tiene una propiedad llamada nombre. Quiero eliminar de manera eficiente un objeto con un nombre particular de la matriz. ¿Es esta la mejor manera?manera más eficiente para eliminar un elemento de una matriz en 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;
}
Una cosa importante acerca de esta solución: solo funcionará si cada "nombre" es único. Si hay varios objetos con el mismo nombre, la tabla de búsqueda fallará, al menos si está construida de esta manera. – Quasimondo
interesante ... por lo que básicamente tiene dos listas con datos duplicados ... en general, ¿sería mejor usar tablas de búsqueda y prescindir de matrices para estas situaciones? ¿Funciona esto solo porque el objeto tiene una propiedad 'name' o el método' indexOf' busca en cada valor de propiedad del objeto? – mga
Sí, si no necesita la matriz para otros fines (como ordenar o acceder a los elementos por índice) en este caso, puede usar la tabla de búsqueda. indexOf encuentra instancias de un objeto. En este caso, no usa "nombre" para la comparación. El nombre se usa como hash en la tabla de búsqueda. – Quasimondo