-3
votes

Longueur de chaîne individuelle dans le tableau JavaScript

Je dois créer une fonction qui prend quatre chaînes et renvoie une matrice contenant la longueur de chaque chaîne. On m'a donné ceci:

function stringLengths(str1, str2, str3, str4) {
  //
}


0 commentaires

5 Réponses :


6
votes

Vous pouvez utiliser PARAMETERS DE REPOS Pour convertir les arguments en tableau, puis cartographier code> pour obtenir votre résultat requis. Vous trouverez ci-dessous mon extrait.

p>

function stringLengths(...strings){
  return strings.map(string => string.length);
}
console.log(stringLengths("","something","something else"))


0 commentaires

-3
votes

Voici votre code

function stringLengths(str1, str2, str3, str4) { 
  return [str1.length, str2.length, str3.length, str4.length]
}

console.log(stringLengths('1','bb','ccc','dddd'))


0 commentaires

2
votes

Vous pouvez utiliser la syntaxe de repos et la fonction .map () code> pour obtenir une matrice de longueur de chaîne:

p>

const stringLengths = (...str) => str.map(({ length }) => length);

console.log(stringLengths('lorem', 'ipsum'));
console.log(stringLengths('lorem', 'ipsum', 'sit', 'amet'));


0 commentaires

1
votes

Si vous ne voulez pas modifier votre définition de fonction, vous pouvez également utiliser arguments objet.

p>

function stringLengths(str1, str2, str3, str4)
{    
    return Object.values(arguments).map(x => x.length);
}

console.log(stringLengths("hello", "cruel", "world", "of", "darkness"));


2 commentaires

Bon un mate +1.


Personnellement, je ne vois pas beaucoup de point de maintenir la signature de fonction inchangée si vous utilisez arguments sous la hotte.



0
votes

Il existe déjà d'excellentes réponses pour faire StringLengths code> Travailler avec n'importe quel nombre de paramètres. Cependant, tous (jusqu'à présent) supposent que chaque paramètre est une chaîne.

qui peut conduire à des résultats inattendus: p>

  • Les tableaux et fonctions ont une longueur code> code> li>
  • Tous les objets peuvent être fabriqués avec une Code> Longueur Code> Propriété LI> ul>

    ou même des erreurs: p>

    • choses comme null code> ou non défini code> lancera une erreur lors de la tentative de lecture des propriétés d'eux. Li> ul>

      p>

      const stringLengths = (...strs) =>
        strs.map(s => s.length);
      
      const filterStrings = fn => (...args) =>
        fn(...args.filter(arg => typeof arg === 'string'));
        
      const safeStringLengths = filterStrings(stringLengths);
      
      console.log(
        safeStringLengths(1, 2)
      );
      
      console.log(
        safeStringLengths({length: '🌯'}, ['🥑'], (a, b) => '🌶')
      );
      
      console.log(
        safeStringLengths(null, null)
      );
      
      console.log(
        safeStringLengths("foo", "bar", "foobar")
      );


0 commentaires