Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-05-2004, 13:53   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 11
Arrays, Wiederholungen zählen, splice

Ich habe zwei Arrays nach dem Schema
a1=[1,2,3,4,5,6,7] und
a2=[2,3,3,4,4,4,5,5,5,5,6],
wobei das erste Array immer eine ununterbrochene Zahlenfolge ist, das Zweite eigentlich auch, jedoch kommen die zahlen oft mehrmals hintereinander vor.
Die Zahlen des zweiten Arrays sind dabei immer Bestandteil des ersten Arrays.
Nun möchte ich herausfinden, wie oft die höchste Wiederholung einer Zahldes ersten Arrays im zweiten ist (im oben genannten Beispiel sollte das "4" sein, da die 5 viermal im Array steht.)
Da die Arrays seehr lang sind, und es sehr viele solcher Arrays gibt, möchte ich nicht jede Zahl des ersten Arrays das gesamte 2. Array durchlaufen lassen,
da ich weiss, dass wenn z.B. a1[0] nicht mit a2[0] übereinstimmt, kommt a1[0] im ganzen a2 nicht vor.

Meine (fehlerhafte) Lösung:

ActionScript:
  1. wdh1 = 0;
  2. wdh2 = 0;
  3.  
  4. for (p=0; p<a2.length; p++){
  5.  
  6.     if (a1[0]==a2[p]){
  7.         wdh1=(wdh1+1);
  8.     }
  9.  
  10.     else {
  11.         a1.splice(0,1);
  12.         wdh1 = 0;
  13.     }
  14.     if (wdh1>wdh2){
  15.         wdh2 = wdh1;
  16.     }

Ich will so lange den ersten Wert aus a1 splicen, bis er mit a2[0] übereinstimmt.
Allerdings setzt bei meiner Methode die for-Schleife p um einen hoch, ohne den neuen Wert von a1[0] mit a2 zu vergleichen.
Damit das nicht passiert, habe ich ihnter das splice schon ein "p=p-1;" gesetzt, was allerdings den Flashplayer in die Knie zwang.
Wie kann ich es besser machen?
Laber, laber - helft Ihr trotzdem?
Ich danke im voraus
Gretel.

Geändert von Gretelmari (02-05-2004 um 14:04 Uhr)
Gretelmari ist offline   Mit Zitat antworten
Alt 02-05-2004, 15:18   #2 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 11
OK, hat sich erledigt,
einen schönen Tag noch
Gretelmari ist offline   Mit Zitat antworten
Alt 02-05-2004, 16:30   #3 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Wie hast es denn gemacht? Hab auch mal rumprobiert, aber das hat meine Rechenleistung nie gepackt...
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 03-05-2004, 13:52   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 11
Hi Johannes,
ich hab es nun ganz anders und einfacher gemacht, auch ohne splicen. Da ich ja nur die maximale Wdh-Rate wissen will und die Werte aus a2 _immer_ Bestandteil von a1 sind, hab ich einfach die Werte aus a2 miteinander verglichen und einen Zähler hochgesetzt.
ActionScript:
  1. for (i=0; i<a2.length; i++){
  2.     if (a2[i]==a2[i+1]){
  3.         wdh1=(wdh1+1);
  4.     }
  5.     else {
  6.         wdh1 = 2;
  7.     }
  8.     if (wdh1>wdh2){
  9.         wdh2 = wdh1;
  10.     }
  11. }
Gretelmari 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 13:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele