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




    Dodano przez: divix
    Ranga: Administrator serwisu Punktów: 0
    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-2025 v.1.5 | design: diviXdesign & rainbowcolors