0
votes

Remplacer les espaces blancs consécutifs entre les mots avec un trait d'union

La question est de freecodecamp Link

Remplissez la fonction urlslug afin qu'il convertit une chaîne titre et renvoie la version hyphenée de l'URL. Vous pouvez utiliser n'importe laquelle des méthodes couvertes dans cette section et n'utilisez pas remplacer . Voici les exigences:

L'entrée est une chaîne avec des espaces et des mots en forme de titre

La sortie est une chaîne avec les espaces entre les mots remplacés par un HYHEN ( - )

La sortie doit être toutes les lettres mouches inférieures

La sortie ne doit pas avoir d'espaces xxx

maintenant, je n'ai pas été capable de résoudre comment je pourrais vous débarrasser de l'union supplémentaire de la sortie.

Je ne suis pas censé Utilisez remplacer .


0 commentaires

3 Réponses :


2
votes

vous pourrait em> le faire facilement à l'aide de couper () code> et une simple regex:

p>

var title = "       Winter     Is Coming     Now     ";
var slug = title.split(" ").filter(word => word.length > 0).join("-").toLowerCase();
console.log(slug);


0 commentaires

0
votes

Je travaillais dessus jusqu'à présent, je n'ai pas regardé les réponses. Mais j'ai résolu de cette façon. Pourrait être inefficace. xxx


0 commentaires

0
votes

Une autre option serait de continuer votre pensée de Split () code> puis utilisez Réduisez pour réduire les éléments du tableau à une seule sortie:

p>

var globalTitle = " Winter Is  Coming";

function urlSlug(title) {
    let split = title.split(' ');

    return split.reduce((accumulator, currentValue, index) => {
        if (currentValue.length > 0) {
            accumulator += currentValue.toLowerCase();
            accumulator += (index < split.length - 1) ? '-' : '';
        }

        return accumulator;
    });
}

console.log(urlSlug(globalTitle));


0 commentaires