Maison > Article > interface Web > Effectuer un déplacement dans une chaîne en JavaScript
Supposons que nous ayons une chaîne str contenant des lettres anglaises minuscules et un tableau arr, où arr[i] = [direction, montant] −
direction peut être 0 (décalage à gauche) ou 1 (décalage à droite).
amount est le montant dont la chaîne s doit être déplacée.
Décaler vers la gauche de 1 signifie supprimer le premier caractère de s et l'ajouter à la fin.
De même, décaler vers la droite de 1 signifie supprimer le premier caractère de s et l'ajouter à la fin. Supprimez le dernier caractère de s et ajoutez-le au début.
Nous devons écrire une fonction JavaScript qui accepte une chaîne comme premier paramètre et un tableau de données contenant shift comme deuxième paramètre.
La fonction doit parcourir le tableau et effectuer les changements nécessaires dans la chaîne et enfin renvoyer la nouvelle chaîne.
Par exemple -
Si la chaîne et le tableau d'entrée sont -
const str = 'abc'; const arr = [[0, 1], [1, 2]];
alors la sortie devrait être -
const output = 'cab';
car
[0,1] signifie déplacer 1 vers la gauche. "abc" -> "bca"
[1,2] signifie se déplacer vers la droite de 2. "bca" -> "cab"
Le code est -
Démonstration en direct
const str = 'abc'; const arr = [[0, 1], [1, 2]]; const performShifts = (str = '', arr = []) => { if(str.length < 2){ return str; }; let right = 0 let left = 0; for(let sub of arr){ if(sub[0] == 0){ left += sub[1]; }else{ right += sub[1]; }; }; if(right === left){ return str; } if(right > left){ right = right - left; right = right % str.length; return str.substring(str.length - right) + str.substring(0, str.length - right); }else{ left = left - right; left = left % str.length; return str.substring(left) + str.substring(0,left); }; }; console.log(performShifts(str, arr));
dans la console La sortie sera -
cab
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!