Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-01-2009, 13:05   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Beiträge: 166
mehrfache Einträge aus Array löschen

Hallo Zusammen,

ich habe ein Array mit lauter Objecten drin.

Beispiel:
PHP-Code:
var myDoppelt_oder_MehrfachArray:Array = new Array();

var 
object1:Object = new Object();
object1.name "Gleicher Name wie anderes Objekte";

var 
object2:Object = new Object();
object2.name "Gleicher Name wie anderes Objekte";

var 
object3:Object = new Object();
object3.name "Gleicher Name wie anderes Objekte";

myDoppelt_oder_MehrfachArray.push(object1object2object3);

//so jetzt sind alle Objecte in meinem Array 
... jetzt will ich das nur eines in dem Array bleibt.....am besten das erste...aber egal... alle doppelten, dreifachen oder x fachen Einträge sollen anhand des Objekt-Namens (myDoppelt_oder_MehrfachArray[count].name) rausgefiltert werden.

Hab schon viele Scripte gefunden die aber nur die doppelten rausfiltern... wenn also mehr drin sind gingen diese scripte nicht, oder es wird halt dann nur eines raus gelöscht mit splice.

Nicht funktionierendes Script Beispiel:

PHP-Code:
function removeDoubleNodes(incommingArray:Array) {
    
    
    for (var 
0incommingArray.lengthi++) {
      for (var 
= (1); incommingArray.lengthj++) {
         
trace("incommingArray[i].node_name= "+incommingArray[i].node_name);
         
//trace("incommingArray[j].node_verk_name= "+incommingArray[j].node_verk_name);
         //if (incommingArray[i].node_verk_name === incommingArray[j].node_verk_name) {
         
if (incommingArray[i].node_name === incommingArray[j].node_name) {
            
incommingArray.splice(j1);
         }
      }
    }
    
   

Hat jemand ein Script für mich bitte... checks nicht mehr
Das wäre toll!

lg mikolo
mikolo ist offline   Mit Zitat antworten
Alt 17-01-2009, 13:43   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 18.114
wenn du mit splice werte aus dem array entfernst, dann kommt dein for ganz schön ins trudeln!
wenn überhaupt so, dann rückwärts indizieren; damit nur werte entfernt werden, die die for-schleife schon hinter sich gelassen hat.

gegebenenfalls umschreiben, ist AS2
http://www.seibsprogrammladen.de/fra...orithmen/Array
Doppelte Einträge entfernen
Mehrfach vorhandene Einträge listen
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (17-01-2009 um 13:47 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 17-01-2009, 13:51   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.241
Code:
    private function uniqueArray (oldArray:Array):Array{              var newArray : Array = new Array();          var unique : Array = new Array();          for(var i:int = 0; i<oldArray.length; i++){                    if(unique.indexOf(oldArray[i].name) < 0){                    unique.push(oldArray[i].name);                    newArray.push(oldArray[i]);                    }          }          return newArray;}
So müsste es gehen.
Zitat:
Zitat von hgseib Beitrag anzeigen
gegebenenfalls umschreiben, ist AS2
genau, ist ja das AS3 Forum hier
__________________
EDV = Ende Der Vernunft

Geändert von hmpf (17-01-2009 um 15:47 Uhr)
hmpf ist offline   Mit Zitat antworten
Alt 17-01-2009, 14:03   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Beiträge: 166
nee geht leider auch nicht so

PHP-Code:

var myDoppelt_oder_MehrfachArray:Array = new Array();

var 
object1:Object = new Object();
object1.name "Gleicher Name wie anderes Objekte";

var 
object2:Object = new Object();
object2.name "Gleicher Name wie anderes Objekte";

var 
object3:Object = new Object();
object3.name "Gleicher Name wie anderes Objekte";

var 
object4:Object = new Object();
object4.name "Anderer Name wie andere Objekte";

myDoppelt_oder_MehrfachArray.push(object1object2object3object4); 

function 
uniqueArray (oldArray:Array):Array{   

    var 
newArray : Array = new Array();
    
    for(var 
i:Number 0i<oldArray.lengthi++){
            
trace(newArray.indexOf(oldArray[i].name));
            if(
newArray.indexOf(oldArray[i].name) < 0){
    
                
newArray.push(oldArray[i]);
    
            }
    
    }
    
trace(newArray);
    return 
newArray;



uniqueArray(myDoppelt_oder_MehrfachArray); 

geht leider auch nicht so?
mikolo ist offline   Mit Zitat antworten
Alt 17-01-2009, 14:28   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.241
Zitat:
Zitat von mikolo Beitrag anzeigen
geht leider auch nicht so?
Ist mir kurz darauf auch aufgefallen. Das liegt daran, daß Du Objekte im Array speicherst. Ich habe den vorherigen Post geändert. Versuchs noch mal.
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Alt 17-01-2009, 14:36   #6 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Beiträge: 166
jipieee und danke

passt alles, hier die Komplett Lösung....

PHP-Code:

var myDoppelt_oder_MehrfachArray:Array = new Array();

var 
object1:Object = new Object();
object1.name "Gleicher Name wie anderes Objekte";

var 
object2:Object = new Object();
object2.name "Gleicher Name wie anderes Objekte";

var 
object3:Object = new Object();
object3.name "Gleicher Name wie anderes Objekte";

var 
object4:Object = new Object();
object4.name "Anderer Name wie andere Objekte";

myDoppelt_oder_MehrfachArray.push(object1object2object3object4); 


function 
uniqueArray (oldArray:Array):Array{   

    var 
newArray : Array = new Array();
    
    var 
unique : Array = new Array();
    
    for(var 
i:Number 0i<oldArray.lengthi++){
    
            if(
unique.indexOf(oldArray[i].name) < 0){
    
            
unique.push(oldArray[i].name);
    
            
newArray.push(oldArray[i]);
    
            }
    
    }
    
trace(newArray);
    return 
newArray;



uniqueArray(myDoppelt_oder_MehrfachArray); 
mikolo ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 07:19 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele