Loading:


Array.sortOn [AS 2]

Klasa: Array

Kompatybilność: ActionScript 2.0, Flash6+

 

sortOn(nazwaPola:Object, [opcje:Object]) : Array

 

Sortuje elementy w tablicy odwołując się do jednego lub wielu pól dla obiektów tablicy. Metoda jest najczęściej używana dla tablic asocjacyjny, czyli z więcej niż jedną wartością dla jednego wpisu w tablicy.

 

Domyślnie, Array.sortOn() działa według zasad wymienionych poniżej:

  • Sortowanie odróżnia wielkość liter (Z poprzedza a).
  • Sortowanie jest w kolejności alfabetycznej (a poprzedza b).
  • Jeśli w tablicy są dwa takie same wartości porównywane, wtedy metoda wybiera losową wartość jaką pierwszą, a później powtórzoną.
  • Pola liczbowe są sortowane jakby były ciągami znaków, czyli 100 będzie poprzedzało 99, ponieważ "1" jest mniejszym ciągiem niż "9".

 

Flash Player 7 dodaje parametr opcje, które może nadpisywac domyślne ustawienia tego sortowania. Można używać połączonych właściwości (widocznych w tabeli) oddzielając je miedzy sobą znakiem "|" czyli logicznego OR (LUB).

 

moj_array.sortOn(nazwaPola, Array.DESCENDING | Array.NUMERIC);

 

Flash Player 8 wprowadził możliwość sortowania, każdego pola z wpisu z tabeli osobno, np podany kod wykona Array.DESCENDING dla pola o nazwie a, natomiast Array.NUMERIC zadziała dla pola o nazwie b.

 

Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);

 

Jeśli chcesz posortować prosto tablicę z jedną wartością dla wpisu, to użyj Array.sort() zamiast tej metody.

 

Właściwości dla klasy Array

Typ

Nazwa

Opis

static

CASEINSENSITIVE:Number

Podczas sortowania wielkość znaków jest ignorowana.

static

DESCENDING:Number

Właściwość dla sortowania, w kolejności odwrotnej od pierwotnej (tak samo jak desc w sql).

static

NUMERIC:Number

Właściwość dla sortowania, ustawia sortowanie numerowe (nie dla ciągów znaków) np 1, 2, 3.

static

RETURNINDEXEDARRAY:Number

Ustawia, że sortowania zwróci zindeksowaną tablicę jako wynik dla metod: sort() lub sortOn().

static

UNIQUESORT:Number

Właściwość dla sortowania, stała ta określa unikalne sortowanie wymogu.

 

Przykład:

//Przykład 1 - ilustrowanie prostego sortowania dla sortOn()
var rec_array:Array = new Array();
rec_array.push({name: "john", city: "omaha", zip: 68144});
rec_array.push({name: "john", city: "kansas city", zip: 72345});
rec_array.push({name: "bob", city: "omaha", zip: 94010});
for(i=0; i<rec_array.length; i++){
    trace(rec_array[i].name + ", " + rec_array[i].city);
}
// Zwróci:
// john, omaha
// john, kansas city
// bob, omaha

rec_array.sortOn(["name", "city"]);
for(i=0; i<rec_array.length; i++){
    trace(rec_array[i].name + ", " + rec_array[i].city);
}
// Zwróci:
// bob, omaha
// john, kansas city
// john, omaha

rec_array.sortOn(["city", "name" ]);
for(i=0; i<rec_array.length; i++){
    trace(rec_array[i].name + ", " + rec_array[i].city);
}
// Zwróci:
// john, kansas city
// bob, omaha
// john, omaha


//Przykład 2 - dodawania obiektów z parametrami do tablicy:

var moj_array:Array = new Array();
moj_array.push({haslo: "Bob", wiek:29});
moj_array.push({haslo: "abcd", wiek:3});
moj_array.push({haslo: "barb", wiek:35});
moj_array.push({haslo: "catchy", wiek:4});

//domyślne sprtowanie metody zwróci:
moj_array.sortOn("haslo");
// Bob
// abcd
// barb
// catchy

//sortowanie nie zwraca uwagę na wielkość znaków:

moj_array.sortOn("haslo", Array.CASEINSENSITIVE);
// abcd
// barb
// Bob
// catchy

//sortowanie odwrotne oraz bez brania pod uwagę wielkości znaków:
moj_array.sortOn("haslo", Array.CASEINSENSITIVE | Array.DESCENDING);
// catchy
// Bob
// barb
// abcd

//domyśle sortowanie dla wieku:
moj_array.sortOn("wiek");
// 29
// 3
// 35
// 4

//sortowanie numeryczne dla wieku:
moj_array.sortOn("wiek", Array.NUMERIC);
// moj_array[0].wiek = 3
// moj_array[1].wiek = 4
// moj_array[2].wiek = 29
// moj_array[3].wiek = 35

//sortowanie numeryczne odwrotne:
moj_array.sortOn("wiek", Array.DESCENDING | Array.NUMERIC);
// moj_array[0].wiek = 35
// moj_array[1].wiek = 29
// moj_array[2].wiek = 4
// moj_array[3].wiek = 3

//kiedy yżywasz Array.RETURNEDINDEXARRAY sortowania opcji, musisz wtedy zadeklarować zwracaną wartość do innej tablicy. Oryginalna tablica nie jest modyfikowana.
var indexArray:Array = moj_array.sortOn("wiek", Array.RETURNINDEXEDARRAY);



Napisz Artykuł

Listing

niema


kontakt w sprawie miejsca



Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38423
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-19 v.1.5 | design: diviXdesign & rainbowcolors