0
votes

Ajout d'élément avec la méthode de l'épissure

J'essaie de nous envisager la méthode javascript pour ajouter un "-" avant chaque capitale de mon tableau, mais cela ne fonctionne pas. Je ne sais pas ce que je fais mal. Voici mon code ci-dessous. XXX


0 commentaires

3 Réponses :


0
votes

Vous avez changé votre tableau lorsque vous le faites:

strArr.splice(strArr.indexOf(strArr[i]),0, "-");


0 commentaires

1
votes

Lorsque vous ajoutez un nouvel élément avec Splice code> Vous augmentez la longueur code> de la matrice et la boucle n'est jamais capable de finir. Si vous travaillez la boucle à partir de la fin de la matrice au début, vous pouvez éviter ce problème.

p>

function spinalCase(str) {
  let strArr = [];
  for (let i = 0; i < str.length; i++) {
    strArr.push(str[i]);
  }

  // Work the loop from the end to the beginning
  for (let i = strArr.length - 1; i >= 0 ; i--) {
    if (strArr[i] !== strArr[i].toLowerCase()) {
      strArr.splice(strArr.indexOf(strArr[i]), 0, "-");
    }
  }
  console.log(strArr.join(''));
}

spinalCase('thisIsSpinalTap');


0 commentaires

1
votes

Je sais que vous vouliez utiliser une épissure, mais voici une petite solution de regex; Au cas où.

function spinalCase(str) {
 return str.replace(/[A-Z]/g, "-$&").toLowerCase();
}

console.log(spinalCase("thisIsSpinalTap"))
// this-is-spinal-tap


0 commentaires