1
votes

Transforme ma fonction en fonction constructeur

Je fais essentiellement l'un des problèmes javascript de Kata et j'ai réussi à obtenir une fonction qui fait le travail, à part cela ne fonctionne pas en tant que fonction de constructeur et j'ai peur d'être un peu perdu.

Je dois faire en sorte que le code ci-dessous fonctionne avec une chaîne fournie IE

<!-- language: lang-js -->
  function accum(){
  var boom = s.split("");
  count = 1;

  for (var i = 0; i < boom.length; i++) {
    repeat = count++;
    finalvalue = boom[i].repeat(repeat);
    var capitalizeLetter = finalvalue.charAt(0).toUpperCase() +
      finalvalue.slice(1);
    console.log(capitalizeLetter);
  }
  }

  accum('opportunity');

Sortie

O Pp PPP Oooo Rrrrr Tttttt Uuuuuuu Nnnnnnnn Iiiiiiiii Tttttttttt Yyyyyyyyyyy


4 commentaires

Qu'entendez-vous par «fonction constructeur»?


fondamentalement, il doit s'agir d'une fonction qui peut prendre n'importe quelle valeur, donc j'aurais la fonction accum (); et en cela je pourrais mettre une valeur et cela exécuterait la fonction sur cette valeur


Que souhaitez-vous construire et comment sera-t-il utilisé?


Veuillez créer un exemple reproductible minimal . function ('ceci est une chaîne'); n'est pas une syntaxe invalide


3 Réponses :


2
votes

Ce que vous recherchez est simplement appelé une fonction régulière. Un constructeur est utilisé avec des classes, il semble donc inapplicable ici.

Enveloppez-le simplement comme ceci:

function myFunction(s) {
  let boom = s.split("");
  count = 1;

  for (var i = 0; i < boom.length; i++) {
    repeat = count++;
    finalvalue = boom[i].repeat(repeat);
    let capitalizeLetter = finalvalue.charAt(0).toUpperCase() +
      finalvalue.slice(1);
    console.log(capitalizeLetter);
  }
}

myFunction("opportunity");

J'espère que cela vous aidera,


1 commentaires

Je l'espère! cela ne fonctionne pas avec le système de test de kata, semble juste renvoyer undefined, ce que je ne comprends pas mais que je continuerai d'essayer



0
votes

Vous voulez que cela fonctionne lorsque la page est prête, comme ça?

(function() {
   // your function 
})();


0 commentaires

0
votes
 function f(s) {
        var boom = s.split("");
        count = 1;

        for (var i = 0; i < boom.length; i++) {
            repeat = count++;
            finalvalue = boom[i].repeat(repeat);
            var capitalizeLetter = finalvalue.charAt(0).toUpperCase() +
                finalvalue.slice(1);
            console.log(capitalizeLetter);
        }
    } 
f('this is a string');

0 commentaires