Rendezés
A TapHome szkript rendezőfüggvényei — ORDER, ORDERINDEX és ezek STRICT és csökkenő változatai az értékek rendezésére vagy a rendezési sorrend indexeinek visszaadására.
Az ORDER függvények rendezik az értékeket, és új gyűjteményt adnak vissza — vagy a rendezett értékeket, vagy az ORDERINDEX változatokban az értékek eredeti, nullától kezdődő pozícióit rendezett sorrendben.
| Függvény | Sorrend | Visszatérési érték | Ismeretlen értékek (Null, NaN) |
|---|---|---|---|
ORDER | növekvő | értékek | eltávolítja |
ORDERSTRICT | növekvő | értékek | megtartja, az elejére teszi |
ORDERDESC | csökkenő | értékek | eltávolítja |
ORDERDESCSTRICT | csökkenő | értékek | megtartja, az elejére teszi |
ORDERINDEX | növekvő | indexek | eltávolítja |
ORDERINDEXSTRICT | növekvő | indexek | megtartja, az elejére teszi |
ORDERINDEXDESC | csökkenő | indexek | eltávolítja |
ORDERINDEXDESCSTRICT | csökkenő | indexek | megtartja, az elejére teszi |
Mind a nyolc függvényre érvényes szabályok:
- 1–100 értéket fogadnak, vagy pontosan egy gyűjteményt. A forrásgyűjtemény nem változik.
- Az értékeknek összehasonlíthatónak és egyfajtának kell lenniük — számok, karakterek, szövegek,
datetimevagytimespan; számok és szövegek keverése hibát okoz. - A szövegek és a karakterek rendezése karakterkód szerint történik, így a nagybetűk a kisbetűk elé kerülnek.
- Az egyenlő értékek megtartják eredeti sorrendjüket.
- A
STRICTváltozatok az ismeretlen értékeket az elejére teszik, a csökkenő változatokban is. - Az üres gyűjtemény hibát okoz: Collection is null or empty.
Példa — a legolcsóbb óra egy árlistából
VAR prices := {12.5, 8.1, 20.0, 9.9};
VAR cheapest := GETAT(ORDER(prices), 0);
# cheapest = 8.1
VAR cheapestHour := GETAT(ORDERINDEX(prices), 0);
# cheapestHour = 1ORDER
Az ORDER az értékeket növekvő sorrendbe rendezve adja vissza, Null és NaN nélkül.
| |
ORDER(3, 1, 2);
# Result: {1, 2, 3}
ORDER(3, NaN, 2, NaN);
# Result: {2, 3}
ORDER('Z', 'a', 'X');
# Result: {'X', 'Z', 'a'}
ORDER("str1", NULL, "STR2", "stR1");
# Result: {"STR2", "stR1", "str1"}
ORDER(NULL, TIMESPAN(0, 0, 0, 0, 100), TIMESPAN(0, 0, 0, 0, 99));
# Result: {TIMESPAN(0, 0, 0, 0, 99), TIMESPAN(0, 0, 0, 0, 100)}ORDERSTRICT
Az ORDERSTRICT az értékeket növekvő sorrendbe rendezve adja vissza, a Null és a NaN értékeket az elején megtartja.
| |
ORDERSTRICT(3, NaN, 2, NaN);
# Result: {NaN, NaN, 2, 3}
ORDERSTRICT("str1", "STR2", "stR1");
# Result: {"STR2", "stR1", "str1"}
ORDERSTRICT(NULL, TIMESPAN(0, 0, 0, 0, 99));
# Result: {NULL, TIMESPAN(0, 0, 0, 0, 99)}ORDERDESC
Az ORDERDESC az értékeket csökkenő sorrendbe rendezve adja vissza, Null és NaN nélkül.
| |
ORDERDESC(3, 1, 2);
# Result: {3, 2, 1}
ORDERDESC(3, NaN, 2, NaN);
# Result: {3, 2}
ORDERDESC('Z', 'a', 'X');
# Result: {'a', 'Z', 'X'}
ORDERDESC("str1", NULL, "STR2", "stR1");
# Result: {"str1", "stR1", "STR2"}ORDERDESCSTRICT
Az ORDERDESCSTRICT az értékeket csökkenő sorrendbe rendezve adja vissza, a Null és a NaN értékeket az elején megtartja.
| |
ORDERDESCSTRICT(3, NaN, 2, NaN);
# Result: {NaN, NaN, 3, 2}
ORDERDESCSTRICT(NULL, TIMESPAN(0, 0, 0, 0, 99), TIMESPAN(0, 0, 0, 0, 100));
# Result: {NULL, TIMESPAN(0, 0, 0, 0, 100), TIMESPAN(0, 0, 0, 0, 99)}ORDERINDEX
Az ORDERINDEX az értékek pozícióit adja vissza az értékek növekvő sorrendjében, a Null és a NaN pozíciói nélkül.
| |
Visszatérési érték — a bemeneten belüli, nullától kezdődő pozíciók collection<int> gyűjteménye. Az első elem a legkisebb érték pozíciója.
ORDERINDEX(3, 1, 2);
# Result: {1, 2, 0}
ORDERINDEX(3, NaN, 2, NaN);
# Result: {2, 0}
ORDERINDEX("str1", NULL, "STR2", "stR1");
# Result: {2, 3, 0}ORDERINDEXSTRICT
Az ORDERINDEXSTRICT az értékek pozícióit adja vissza az értékek növekvő sorrendjében, elöl a Null és a NaN pozícióival.
| |
ORDERINDEXSTRICT(3, 1, 2);
# Result: {1, 2, 0}
ORDERINDEXSTRICT(3, NaN, 2, NaN);
# Result: {1, 3, 2, 0}
ORDERINDEXSTRICT(NULL, TIMESPAN(0, 0, 0, 0, 99));
# Result: {0, 1}ORDERINDEXDESC
Az ORDERINDEXDESC az értékek pozícióit adja vissza az értékek csökkenő sorrendjében, a Null és a NaN pozíciói nélkül.
| |
ORDERINDEXDESC(3, 1, 2);
# Result: {0, 2, 1}
ORDERINDEXDESC(3, NaN, 2);
# Result: {0, 2}
ORDERINDEXDESC("str1", NULL, "STR2", "stR1");
# Result: {0, 3, 2}ORDERINDEXDESCSTRICT
Az ORDERINDEXDESCSTRICT az értékek pozícióit adja vissza az értékek csökkenő sorrendjében, elöl a Null és a NaN pozícióival.
| |
ORDERINDEXDESCSTRICT(3, 1, 2);
# Result: {0, 2, 1}
ORDERINDEXDESCSTRICT(3, NaN, 2, NaN);
# Result: {1, 3, 0, 2}
ORDERINDEXDESCSTRICT(NULL, TIMESPAN(0, 0, 0, 0, 99));
# Result: {0, 1}