Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

66
Visualizações
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.

about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

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 )

about 4 years ago · Santiago Gelvez Relatório

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 });
about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda