Maison > interface Web > js tutoriel > Comment puis-je inverser une chaîne dans JavaScript sur place en utilisant uniquement les fonctions intégrées tout en gérant correctement Unicode ?

Comment puis-je inverser une chaîne dans JavaScript sur place en utilisant uniquement les fonctions intégrées tout en gérant correctement Unicode ?

Mary-Kate Olsen
Libérer: 2024-12-08 04:51:09
original
340 Les gens l'ont consulté

How Can I Reverse a String in JavaScript In-Place Using Only Built-In Functions While Handling Unicode Correctly?

Inverser une chaîne sur place en JavaScript à l'aide des fonctions intégrées

Problème :

Considérez une chaîne passée à une fonction qui renvoie la chaîne inversée. Comment cela peut-il être réalisé en JavaScript à l'aide de fonctions intégrées et sans recourir à des méthodes telles que .reverse() ou .charAt() ?

Solution :

Solution compatible Unicode :

Pour les chaînes contenant des caractères ASCII simples, la fonction suivante utilise la fonction intégrée fonctions :

function reverse(s) {
  return s.split("").reverse().join("");
}
Copier après la connexion

Cependant, pour les chaînes contenant des caractères multi-octets (tels que UTF-16), cette solution renverra des chaînes Unicode non valides ou des chaînes qui semblent déformées. Pour résoudre ce problème, envisagez les approches alternatives suivantes :

Utilisation de l'opérateur d'expansion de tableau :

L'opérateur d'expansion de tableau est compatible Unicode, permettant la fonction d'inversion suivante :

function reverse(s) {
  return [...s].reverse().join("");
}
Copier après la connexion

Utilisation de Split() avec RegExp et Unicode Flag :

Une autre approche compatible Unicode consiste à utiliser split() avec une expression régulière et le drapeau Unicode (u) comme séparateur :

function reverse(s) {
  return s.split(/(?:)/u).reverse().join("");
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal