Skip to content

Tableaux ​

sort, reverse et distinct préservent le type d'entrée : sort(scores) sur un number[] infère number[].

Pour transformer ou filtrer élément par élément, utiliser les constructions du langage — la projection -> et les filtres [predicate] — plutôt que les lambdas $map/$filter de JSONata.

Mesure ​

count ​

count(items: unknown[]): number

Nombre d'éléments.

typeflow
total: count(order.items)

Combinaison ​

join ​

join(items: string[], separator?: string): string

Concatène les chaînes avec un séparateur ("" par défaut).

typeflow
csv: join(user.tags, ", ")

append ​

append(first: unknown[], second: unknown[]): unknown[]

Concatène deux tableaux.

typeflow
all: append(data.names, data.scores)

zip ​

zip(first: unknown[], second: unknown[]): unknown[][]

Apparie les éléments par indice, tronqué au tableau le plus court.

typeflow
paired: zip(data.names, data.scores)

Réordonnancement ​

sort ​

sort(items: string[] | number[]): string[] | number[]

Trie en ordre naturel croissant ; le résultat conserve le type d'entrée.

typeflow
ranked: sort(data.scores)

reverse ​

reverse(items: unknown[]): unknown[]

Inverse l'ordre ; le résultat conserve le type d'entrée.

typeflow
latestFirst: reverse(data.scores)

shuffle ​

shuffle(items: unknown[]): unknown[]

Permutation aléatoire ; conserve le type d'entrée.

typeflow
deckOrder: shuffle(deck.cards)

Déduplication ​

distinct ​

distinct(items: unknown[]): unknown[]

Supprime les doublons (égalité profonde pour les objets) ; conserve le type d'entrée.

typeflow
unique: distinct(data.names)

Playground ​

Mapping✔Playground ↗
JSON d'entrée
Sortie
{
  "ranked": [
    12,
    12,
    7,
    3
  ],
  "unique": [
    "ada",
    "alan"
  ],
  "merged": [
    "ada",
    "alan",
    "ada",
    12,
    3,
    12,
    7
  ],
  "paired": [
    [
      "ada",
      12
    ],
    [
      "alan",
      3
    ],
    [
      "ada",
      12
    ]
  ],
  "csv": "ada, alan, ada"
}
type inféré{ ranked: number[]; unique: string[]; merged: (string | number)[]; paired: (string | number)[][]; csv: string; }

Publié sous licence MIT.