Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-05-2006, 14:29   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 888
Question doppelte wert im array verhindern?

hi an alle also ich sehe grade mal den fehler nicht.
aber vom gedanken er müsste es richtig sein. =)

ActionScript:
  1. arrNum=[];
  2.  
  3.  
  4. btn.onRelease=function(){
  5.         for(i=0;i<arrNum.length;i++){
  6.             trace("i "+i+" arr "+arrNum.length);
  7.         if(arrNum[i]!=Num){
  8.             arrNum.push(Num);
  9.         }else{
  10.             trace("neh");
  11.         }
  12.     }
  13.     }

ich wollte damit verhindern das werte doppelt in mein array rein kommen.
flozwo ist offline   Mit Zitat antworten
Alt 28-05-2006, 14:55   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Tag!

Probier's mal so:
PHP-Code:
btn.onRelease = function() {
    for (
i=0i<arrNum.lengthi++) {
        
trace("i "+i+" arr "+arrNum.length);
        if (
arrNum[i] == Num) {
            break;
        } else if (
== arrNum.length-1) {
            
arrNum.push(Num);
        }
    }
}; 
edit: ...stimmt else if kann man sich auch schenken, wenn man den push-Befehl aus der Schleife raus nimmt.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++

Geändert von Der Frager (28-05-2006 um 14:59 Uhr)
Der Frager ist offline   Mit Zitat antworten
Alt 28-05-2006, 14:56   #3 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Du musst schon die ganze for-Schleife abwarten...
PHP-Code:
btn.onRelease = function()
{        
    for( var 
0arrNum.lengthi++ )
    {            
        
trace("i "+i+" arr "+arrNum.length); 
        
        if( 
arrNum[i] == Num )
        {            
            
trace"neh" );
            return;
        }   
    }    
       
    
arrNum.pushNum );           

__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 28-05-2006, 15:00   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
"..vom gedanken her müsste es richtig sein.."
und alle rätzel, woran denk blos flozwo? zumindestens nicht bis ans ende der schleife. solltest du aber, weil erst dann darfst du push'en.

Code:
Array.prototype.fNichMitLeo = function(_neu) {
	var d = ord(4);
	if ((this.join(d)+d).indexOf(_neu+d) == -1) {
		this[this.length] = _neu;
	}
	return this;
};
//
_array = ['hund', 'katz', 'maus'];
trace(_array.fNichMitLeo('hund'));
trace(_array.fNichMitLeo('vogel'));
edit: hey, das ist hier ja mal wieder wie auf dem oktoberfest. kaum hat man eine zeile stylistisch geformt, schon haben 1000andere geantwortet ;-) und es sind immer die selben. ich vermute, ihr habt ein automatisches beantwortungs-programm geschrieben!?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (28-05-2006 um 15:20 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 28-05-2006, 15:07   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
Zitat von hgseib
kaum hat man eine zeile stylistisch geformt, schon haben 1000andere geantwortet
...und noch schnell 'ne Kleinigkeit im Script geändert plus ein edit geschafft.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 28-05-2006, 15:09   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 888
cool danke. =)
aber jetzt noch eine kleine frage dazu wofür das "return"?

und warum muss man bis zum ende mit dem "pushen" warten ?


ich wollte mich aber trotzdem schon mal bedanken=)
#FREU#
flozwo ist offline   Mit Zitat antworten
Alt 28-05-2006, 15:27   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
"..jetzt noch eine kleine frage dazu wofür das "return"?
und warum muss man bis zum ende mit dem "pushen" warten ?.."

das sind 2 fragen.

ein return beendet die funktion (gibt in der regel einen funktionswert zurück. wenn da nichts steht, dann halt das)

du testest den 1. wert. ungleich == pushen
du testest den 2. wert. ungleich == pushen
...

sinnvoller wäre es schon, zuerst alle zu überprüfen und dann erst zu pushen, falls KEINER der werte gleich ist.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib 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 02:44 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele