Aller au contenu principal
U/
Immutabilité
javascript

Trier un tableau sans muter l'original

Trier un tableau de nombres dans l'ordre décroissant sans modifier le tableau d'origine, en utilisant la syntaxe de copie superficielle de JavaScript.

15 minPublié le 20 mai 2026Proposé par Anonyme

Défi

// Lisez attentivement, codez sur votre machine

Énoncé

Soit le tableau arr = [5, 2, 9, 1, 7]. Produire un nouveau tableau sorted contenant les mêmes éléments triés en ordre décroissant, sans muter arr. Utiliser la syntaxe de copie superficielle [...arr].sort(...). Afficher sorted, puis afficher arr pour prouver qu'il est inchangé.

Contraintes

  • ES2015+ (environnement Node.js 18 ou navigateur moderne).
  • La copie doit utiliser le spread [...arr] ou arr.slice() — pas Array.from avec mapping.
  • Le comparateur de tri doit être explicite : (a, b) => b - a.
  • Pas de bibliothèque externe.
  • Utiliser console.log pour l'affichage.

Exemple

const arr = [5, 2, 9, 1, 7];
const sorted = [...arr].sort((a, b) => b - a);

console.log(sorted);
console.log(arr);
[ 9, 7, 5, 2, 1 ]
[ 5, 2, 9, 1, 7 ]

arr conserve son ordre d'origine ; seul sorted est trié.

Espace solution

Proposer une solution

Connectez-vous ou créez un compte pour envoyer votre code (aucune exécution côté serveur — on stocke juste le texte pour la communauté).

// À garder en tête
  • D'abord, faire marcher

    On ne cherche pas à optimiser : d'abord, on fait marcher le truc. Optimiser vient ensuite — et ça aussi, ça s'apprend. (Si un défi porte sur l'optimisation, son énoncé le précise.)

  • Pas de mauvaise réponse

    Il n'y a pas de mauvaise réponse à un défi. Le but, c'est de le faire. Ce qui compte, c'est de s'entraîner.

  • Trop dur ? Au suivant

    Un défi te résiste ? N'hésite pas à en prendre un autre. Ils seront encore là demain.