Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-01-2004, 23:31   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 42
SortOn

Und noch etwas brennt mir unter den Nägeln habe mich nun schon durch einige Beschreibungen für die sortOn Funktion gequält, krieg aber leider nicht den Bogen zu meinem Problem

Hier mit möchte ich mir die Erste Stelle aus dem Array n das Element t ausgeben lassen. : Result.m[i].n[0].t

n ist eine unsortierte Liste mit den Elementen t (ein text) und a (eine nummerierung). Nun möchte ich mir den Text ausgeben der die höchste Nummer hat.

Wer klärt mich auf? =)

Vielen Dank&Gruss
mstyle ist offline   Mit Zitat antworten
Alt 21-01-2004, 10:41   #2 (permalink)
nordlicht
 
Benutzerbild von phantura
 
Registriert seit: Apr 2002
Ort: Hamburg
Beiträge: 137
du kannst es mit dem Selection Sort machen. Hier mein Vorschlag:
[copy&paste]
ActionScript:
  1. var n =[1,8,6,9,5,2,10];
  2. trace(n);
  3. selectionSort(n,n.length);
  4. trace(n);
  5. function selectionSort(n, array_size){
  6.   var i, j;
  7.   var min, temp;
  8.  
  9.   for (i = 0; i < array_size-1; i++)
  10.   {
  11.     min = i;
  12.     for (j = i+1; j < array_size; j++)
  13.     {
  14.       if (n[j] > n[min])
  15.         min = j;
  16.     }
  17.     temp = n[i];
  18.     n[i] = n[min];
  19.     n[min] = temp;
  20.   }
  21. }
du musst das script natürlich entsprechend auf deine belange anpassen und nach n[i].a sortieren oder ähnlich... das ergebnis hier ist eine absteigende liste, also ist hier n[0] das grösste ergebnis.

gruss
phan
phantura ist offline   Mit Zitat antworten
Alt 21-01-2004, 19:04   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 42
schade...

geht leider nicht...
trotzdem danke =)

wenn ich mir Result.m[i].n[0].t ausgeben lasse ist das immernoch einfach ohne Sortierung der 1. Eintrag im Array.
Ich muss ihn aber vorher irgendwie nach Result.m[i].n[0].a sortieren.

Ich möchte mir ja den Result.m[i].n[0].t ausgeben lassen an dem Result.m[i].n[0].a am höchsten ist.

Da muss es doch ne einfache Lösung geben?
mstyle ist offline   Mit Zitat antworten
Alt 22-01-2004, 00:19   #4 (permalink)
anyway
Gast
 
Beiträge: n/a
@ phantura:

*hüstel*

ActionScript:
  1. arr = [3,8,6,7,2,1,4,10,0,5,9];
  2. arr.sort(function (a,b) {return a>b})
  3. trace(arr);



@ mstyle: Irgendwie setzt Du hier voraus, daß jeder weiss, was mit Result.m[i].n[0].t gemeint ist...Wie soll man Dir da bitte eine Antwort drauf geben?
  Mit Zitat antworten
Alt 22-01-2004, 11:16   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 42
@ anyway hab ich oben aber beschrieben.

nochmal:
Result.n = unsortierte Liste mit den Elementen Result.n.t und Result.n.a.
t ist ein text & a ist eine Zahl.

Ich möchte mir die Stelle im Array (den text) ausgeben lassen an der a (die Zahl) am grössten ist.
mstyle ist offline   Mit Zitat antworten
Alt 22-01-2004, 12:02   #6 (permalink)
anyway
Gast
 
Beiträge: n/a
Also ist Deine Unsortierte Liste ein Objekt oder wie? Poste doch mal Deinen bisherigen Code..
  Mit Zitat antworten
Alt 22-01-2004, 16:01   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 42
for (i=0; i < sResult.m.length; i++)
{

_root.output.htmlText += sResult.m[i].n[0].a+ sResult.m[i].n[0].t

}

-------------------------------------------
sResult ist die ein Suchergebnis einer Suchmaschine.
"m" ist eine Liste von Namen,
jedem Namen ist wiederrum eine Liste "n" bestehend aus "t" = text und "a" = eine Zahl zugeordnet.

Diese Liste "n" ist leider unsortiert.

Irgendwie muss es doch möglich sein "n" nach dem Element "a" z.b. descending zu sortieren.

Ich hab schon probiert mit sResult.m[i].n.sortOn("a") das Ding zu sortieren aber irgendwas mach ich falsch, bzw. vielleicht gehts so auch garnich
mstyle ist offline   Mit Zitat antworten
Alt 22-01-2004, 16:54   #8 (permalink)
nordlicht
 
Benutzerbild von phantura
 
Registriert seit: Apr 2002
Ort: Hamburg
Beiträge: 137
@anyway:

oh ja, das geht auch

..und wieder was gelernt
phantura ist offline   Mit Zitat antworten
Alt 22-01-2004, 17:19   #9 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 42
*g* freut mich...aber warum nicht bei mir?

Ist da in der syntax was falsch?
*grummel*

gruss
mstyle 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 05:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele