midudev / aprende-javascript-problemas

Repositorio para indicar problemas en la plataforma de Aprende JavaScript
https://aprendejavascript.dev
122 stars 4 forks source link

Error ejercicio práctico "Transformación de Arrays en JavaScript" #346

Open danimr99 opened 1 year ago

danimr99 commented 1 year ago

El enunciado del ejercicio es el siguiente:

Recibes dos parámetros: una lista de palabras words y una palabra word. Primero, busca el índice de la palabra en la lista. Después, usa ese índice (que será un número) y devuelve todas las palabras de words que sean más largas (length) que el número del índice.

Ten en cuenta que la palabra word siempre existirá en el array, por lo que no es necesario comprobar si existe o no.

La solución que he escrito para este ejercicio es la siguiente:

function buscaPalabras(words, word) {
  const wordIndex = words.findIndex(item => item === word)
  const lengthToBeat = words[wordIndex].length

  return words.filter(item => item.length > lengthToBeat)
}

Si alguien considera que la solución que he aportado es incorrecta, pido por favor que me lo haga saber. De igual forma, he probado con cada uno de los conjuntos de entrada utilizados por los tests. Los resultados han sido los siguientes:

Considero que, de ser correcta mi solución, los expecteds no coinciden con los que deberían ser los actuals. He considerado que quizás se trataba de un error del enunciado pero, aún devolviendo las palabras que sean más largas o iguales tampoco lo solucionan.

Aprovecho para agradecer la contribución de @midudev a la comunidad de JavaScript.

luuodoni commented 7 months ago

Vengo por lo mismo, esta mal ese ejercicio.

GabrielBMorello9 commented 7 months ago

A mí me pasa lo mismo, probé la función que escribí en la consola de Chrome y funcionó normalmente, pero en el ejercicio no se valida como correcta.

StefanoVMasotti commented 3 months ago

Buenas, estuve un rato con este ejercicio y termine escribiendo este código: function buscaPalabras(words, word) { let indice = words.indexOf(word) // Guarda el indice de la palabra const wordsL = words.filter(function (word) { // El metodo filter recorre el array if (word.length > indice) { // Compara el length de cada palabra return word // Si cumple la condicion devuelve la palabra y la agrega al nuevo array llamado wordsL } }) return wordsL }

No se si es la forma mas eficiente de lograrlo pero lo resuelve, espero les sirva.

Arezbi8a commented 5 days ago

Hola, ya lo intenté y sigue el array vacío. Saludos

arrayT