-3
votes

Comment inverser une chaîne par caractère au lieu de retourner la chaîne entière?

Si la chaîne est "Hello World", Je dois retourner chaque paire de personnages et retourner "Ehll Owlrdd". La façon dont je le rend renvoie "Olleh Dlrow".

var flipPairs = function (string) {

  return string.split("").reverse().join("");

}


1 commentaires

S'il vous plaît ajoutez votre essai.


3 Réponses :


2
votes

J'utiliserais une expression régulière - Faites correspondre deux caractères consécutifs et remplacez-les par l'ordre inversé:

p>

const flipPairs = str => str.replace(/(.)(.)/g, '$2$1');

console.log(flipPairs("hello world"));


0 commentaires

1
votes

Quoi de ce sujet:

p>

function flip(s)
{
    let r = "";
    for (let i = 0; i < s.length; i+=2)
        r += (i+1 < s.length ? s[i+1] : "")+s[i];
    return r;
}
console.log(flip("hello world"));


0 commentaires

1
votes

Vous pouvez calculer l'index et prendre ce caractère de la réelle si la chaîne a une longueur impaire.

p>

function flipPairs(string) {
    return [...string].map((c, i, a) => a[i + ((i + 1) % 2 || -1)] || c).join('');
}

console.log(flipPairs('hello world'));


0 commentaires