Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

218
Views
Necesito encontrar cuántas vocales hay en cada cadena de la matriz usando bucles. No puedo ver lo que estoy haciendo mal

Entonces, para una tarea del curso, necesito iterar a través de una variedad de frutas para averiguar cuántas vocales y consonantes hay en una palabra. Para la tarea, dice que necesito usar for-in, for loops y declaraciones case-switch o nested-if. Aquí está el código que tengo:

 const fruits = ["Apple", "Orange", "Banana", "Pear", "Peach", "Strawberry", "Cherry", "Acai"]; for (let fruit in fruits) { var vowels = 0; var consonants = 0; for (var i = 0; i < fruit.length; i++) { switch (fruits[fruit][i]) { case "A": case "E": case "I": case "O": case "U": case "a": case "e": case "i": case "o": case "u": vowels = vowels + 1; break; default: consonants = vowels + 1; break; } } } console.log(`Apple has ${vowels} vowels and ${consonants} consonants`);

Soy bastante nuevo en JS y parece que no puedo ver lo que estoy haciendo mal.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Una cosa a tener en cuenta es que for-in es para objetos, mientras que for-each se usa para matrices. Aunque parece que necesita usar funciones específicas para este bit en particular, pensé en señalar esto para uso futuro.

Básicamente, lo que está haciendo con su código es establecer cada elemento de la matriz en un objeto. Por ejemplo, cada variable se convierte en:

0:"Apple", 1:"Orange", ...

Entonces, si estamos iterando, cada fruit tendría una longitud de 1.

La respuesta a su problema es ver cómo ha creado su bucle for en comparación con cómo está creando su caso de cambio. Lo que realmente quieres no es la longitud de la fruit , sino la longitud de las fruits[fruit] si eso tiene algún sentido. Por ejemplo:

 for (var i = 0; i < fruits[fruit].length; i++) { switch (fruits[fruit][i]){ ... } }

--

Otro problema que puedo ver es la forma en que está rastreando sus constantes. Probablemente no debería actualizar sus constantes como constants = VOWELS +1 .

--

Lo último que he notado es que su console.log al final en realidad no generará información sobre las manzanas, en realidad generará información sobre la última fruta en la matriz de fruits (es decir, Acai )

over 4 years ago · Santiago Trujillo Report

0

Una posible solución podría ser con expresiones regulares.

  1. primero unes las vocales
  2. con la salida puede generar dinámicamente una expresión regular.
  3. luego puedes eliminar las vocales de la cadena para obtener las consonantes.
 const regex = /([aeiou])/gi; const fruits = ["Apple", "Orange", "Banana", "Pear", "Peach", "Strawberry", "Cherry", "Acai"]; const map = fruits.reduce((map, fruit) => { const vowels = fruit.match(regex); const consonats = fruit.replaceAll(new RegExp(`(${vowels.join("|")})`, "ig"), ""); map[fruit] = { vowels, consonats: consonats.split("") } return map; }, {}) console.log({ map });
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!