web-dev-qa-db-fra.com

Trier une chaîne par ordre alphabétique à l'aide d'une fonction

Imaginez que vous ayez reçu une chaîne et que vous deviez la trier alphabétiquement à l'aide d'une fonction. Exemple:

sortAlphabets( 'drpoklj' ); //=> returns 'djklopr'

Quelle serait la meilleure façon de faire cela?

16
mdarmanin

Vous pouvez utiliser array sort function:

var sortAlphabets = function(text) {
    return text.split('').sort().join('');
};

PAS

  1. Convertir string en array
  2. Trier array
  3. Convertir array en string

Démo

27
Tushar

Les nouveaux navigateurs supportent String.prototype.localeCompare () , ce qui simplifie le tri des chaînes codées utf8. Notez que différentes langues peuvent avoir un ordre de caractères différent. Plus d'informations sur MDN à propos de localCompare .

function sortAlphabet(str) {
  return [...str].sort((a, b) => a.localeCompare(b));
}

console.log(sortAlphabet("drpoklj")); // Logs: "djklopr"

Si vous devez uniquement prendre en charge les chaînes ascii, alors l’implémentation du tri par défaut fera l'affaire.

function sortAlphabet(str) {
  return [...str].sort();
}
9
function AlphabetSoup(str) { 
    var arraySplit = str.split("");
    var arraySort = arraySplit.sort();
    var arrayJoin = arraySplit.join("");
        return arrayJoin;
}

la réponse ci-dessus est meilleure :)

0
Austin Johnson