@rotomeca/utils - v7.0.3
    Preparing search index...

    Function sortBy

    • Trie un tableau d'éléments en se basant sur une clé de comparaison extraite pour chaque élément.

      Cette fonction est pure (elle ne mute pas le tableau d'origine). Pour garantir des performances optimales sur de grands jeux de données, elle implémente la Transformée de Schwartz (Decorate-Sort-Undecorate). Ainsi, la fonction d'extraction fn n'est exécutée qu'une seule fois par élément, évitant les goulets d'étranglement lors de calculs lourds. Les chaînes de caractères sont triées nativement en tenant compte des spécificités locales (accents).

      Type Parameters

      • T

        Le type des éléments contenus dans le tableau.

      Parameters

      • arr: T[]

        Le tableau source à trier.

      • fn: (item: T) => string | number

        La fonction appelée pour chaque élément afin d'en extraire la valeur de tri (doit retourner un number ou une string).

      Returns T[]

      Un nouveau tableau contenant les éléments triés.

      const users = [
      { id: 3, name: 'Zoe' },
      { id: 1, name: 'Alice' },
      { id: 2, name: 'Éric' }
      ];

      // Tri numérique
      const byId = sortBy(users, user => user.id);
      // => [{id: 1, name: 'Alice'}, {id: 2, name: 'Éric'}, {id: 3, name: 'Zoe'}]

      // Tri alphabétique (gère correctement les accents via localeCompare)
      const byName = sortBy(users, user => user.name);
      // => [{id: 1, name: 'Alice'}, {id: 2, name: 'Éric'}, {id: 3, name: 'Zoe'}]