Promotic

Sort - metoda obiektu PmArray

Opis:
Umożliwia sortowanie tablicy 1-wymiarowej lub dwuwymiarowej.
W przypadku tablic dwuwymiarowych można określić kolejność kolumn podczas sortowania.
Składnia:
Empty Sort(String sType, [Function onSort])
Parametry:
sType(String) Typ sortowania.
Jeżeli sortowanie jest wykonywane przy pomocy funkcji określonej w parametrze onSort, wtedy tutaj musi być pusty łańcuch "".
W innym przypadku należy tutaj określić łańcuch tekstowy według typu tablicy:
- tablica 1-wymiarowa:
"tn" - liczbowo (=n), rosnąco
"tn+r" - liczbowo (=n), malejąco (=r)
"ts" - alfabetycznie, rosnąco, systemowo, bez względu na aktywny język (=s), rozróżnia duże/małe litery
"ts+r" - alfabetycznie, malejąco (=r), systemowo, bez względu na aktywny język (=s), rozróżnia duże/małe litery
"tsi" - alfabetycznie, rosnąco, systemowo, bez względu na aktywny język (=s), nierozróżnia duże/małe litery (=i)
"tsi+r" - alfabetycznie, malejąco (=r), systemowo, bez względu na aktywny język (=s), nierozróżnia duże/małe litery (=i)
"tl" - alfabetycznie, rosnąco, zlokalizowanie, z uwzględnieniem aktywnego języka (=l), rozróżnia duże/małe litery
"tl+r" - alfabetycznie, malejąco (=r), zlokalizowanie, z uwzględnieniem aktywnego języka (=l), rozróżnia duże/małe litery
"tli" - alfabetycznie, rosnąco, zlokalizowanie, z uwzględnieniem aktywnego języka (=l), nierozróżnia duże/małe litery (=i)
"tli+r" - alfabetycznie, malejąco (=r), zlokalizowanie, z uwzględnieniem aktywnego języka (=l), nierozróżnia duże/małe litery (=i)
- tablica 2-wymiarowa:
Przy sortowaniu według pojedynczej kolumny, indeks kolumny jest podawany jako pierwszy (c0+, c1+, ...), po czym następuje metoda sortowania (taka sama jak dla tablicy jednowymiarowej). Tak więc sortowanie według konkretnej kolumny może wyglądać na przykład tak: c0+ts.
 
Podczas sortowania według wielu kolumn jednocześnie zasady sortowania dla każdej kolumny są wymienione kolejno w kolejności ważności, oddzielone przecinkiem (,). Na przykład: "c1+ts,c0+tn+r". Wynikowa tablica zostanie posortowana w drugiej kolumnie alfabetycznie rosnąco a zgodne pozycje tego sortowania zostaną dalej posortowane według wartości liczbowych pierwszej kolumny malejąco.
onSort[opcjonalne] (Function) Parametr onSort zawiera funkcję, która umożliwia własne sortowanie tablicy 1-wymiarowej w przypadkach, kiedy prekonfigurowane sposoby sortowania są niewystarczające.
Funkcja onSort niestandardowo porównuje dwie pozycje tablicy.
Funkcja ta jest w trakcie sortowania powtórnie wołana i musi posiadać następującą postać:
function onSort(v1, v2) { return v1 < v2 ? -1 : v1 > v2 ? 1 : 0; }
gdzie parametr v1 oraz parametr v2 zawierają dwie wartości tablicy, które muszą zostać wzajemnie porównane.
Funkcja zwraca:
-1 - jeżeli v1 < v2
1 - jeżeli v1 > v2
0 - jeżeli v1 = v2.
Notatka! Jeżeli zostanie zastosowany parametr onSort, wtedy parametr sType musi być pusty łańcuch "".
Notatka:
Metoda ta działa także w Web panelach.

W przypadku zgodności wartości sortowanych pozycji tablicy nie jest gwarantowana ich wzajemna kolejność.
Przykład1:
Sortowanie tablicy 1-wymiarowej liczbowo rosnąco:
JavaScriptWybierz oraz skopiuj do schowka

var arr = Pm.CreatePmArray().Array1(0.5, 0.1, 123, -3, -1, 0, 0.8, 0.2);
arr.Sort("tn");
// tablica zostanie posortowana w następujący sposób: -3, -1, 0, 0.1, 0.2, 0.5, 0.8, 123
Przykład2:
Sortowanie tablicy 1-wymiarowej alfabetycznie rosnąco:
JavaScriptWybierz oraz skopiuj do schowka

var arr = Pm.CreatePmArray().Array1("Madrid", "Berlin", "Atheny", "Praha", "Warszava", "Paris", "Vien", "Roma");
arr.Sort("ts");
// tablica zostanie posortowana w następujący sposób: "Atheny, Berlin, Madrid, Paris, Praha, Roma, Vien, Warszava"
Przykład3:
malejąco (=r), zlokalizowanie, z uwzględnieniem aktywnego języka (=l), nierozróżnia duże/małe litery (=i)
JavaScriptWybierz oraz skopiuj do schowka

var arr = Pm.CreatePmArray().Array1("acg1", "ach1", "ACJ1");
arr.Sort("tli+r");
Przykład4:
Niestandardowe sortowanie tablicy 1-wymiarowej:
JavaScriptWybierz oraz skopiuj do schowka

function onSort(v1, v2)
{
return v1 < v2 ? -1 : v1 > v2 ? 1 : 0;
}

var arr = Pm.CreatePmArray().Array1(0.5, 0.1, 123, -3, -1, 0, 0.8, 0.2);
arr.Sort("", onSort);
// tablica zostanie posortowana w następujący sposób: -3, -1, 0, 0.1, 0.2, 0.5, 0.8, 123

Historia:
Pm9.00.18: Nowe rodzaje zlokalizowanego sortowania wg aktywnego języka aplikacji (tl, tli, tl+r oraz tli+r) w parametrze sType.
Pm9.00.17: Nowy parametr onSort do sortowania tablicy 1-wymiarowej przy pomocy funkcji.
Pm9.00.09: Wytworzono
© MICROSYS, spol. s r. o.