TapHome

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énySorrendVisszatérési értékIsmeretlen értékek (Null, NaN)
ORDERnövekvőértékekeltávolítja
ORDERSTRICTnövekvőértékekmegtartja, az elejére teszi
ORDERDESCcsökkenőértékekeltávolítja
ORDERDESCSTRICTcsökkenőértékekmegtartja, az elejére teszi
ORDERINDEXnövekvőindexekeltávolítja
ORDERINDEXSTRICTnövekvőindexekmegtartja, az elejére teszi
ORDERINDEXDESCcsökkenőindexekeltávolítja
ORDERINDEXDESCSTRICTcsökkenőindexekmegtartja, 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, datetime vagy timespan; 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 STRICT vá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 = 1

ORDER

Az ORDER az értékeket növekvő sorrendbe rendezve adja vissza, Null és NaN nélkül.

1
2
ORDER(value1, value2, ...)
ORDER(collection)
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.

1
2
ORDERSTRICT(value1, value2, ...)
ORDERSTRICT(collection)
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.

1
2
ORDERDESC(value1, value2, ...)
ORDERDESC(collection)
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.

1
2
ORDERDESCSTRICT(value1, value2, ...)
ORDERDESCSTRICT(collection)
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.

1
2
ORDERINDEX(value1, value2, ...)
ORDERINDEX(collection)

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.

1
2
ORDERINDEXSTRICT(value1, value2, ...)
ORDERINDEXSTRICT(collection)
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.

1
2
ORDERINDEXDESC(value1, value2, ...)
ORDERINDEXDESC(collection)
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.

1
2
ORDERINDEXDESCSTRICT(value1, value2, ...)
ORDERINDEXDESCSTRICT(collection)
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}