aprende-javascript-problemas icon indicating copy to clipboard operation
aprende-javascript-problemas copied to clipboard

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

Open danimr99 opened this issue 2 years ago • 4 comments

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:

  • return type

    Expected: "function" Actual: "function"

  • return type

    Expected: "array" Actual: "array"

  • fn(['casa', 'coche'], 'casa')

    Expected: ["casa","coche"] Actual: ["coche"]

  • fn(['play', 'balon', 'asa', 'taza', 'tio'], 'tio')

    Expected: ["balon"] Actual: ["play","balon","taza"]

  • fn(['play', 'midu', 'asa', 'libro', 'lino', 'dino'], 'dino')

    Expected: [] Actual: ["libro"]

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.

danimr99 avatar Sep 25 '23 22:09 danimr99

Vengo por lo mismo, esta mal ese ejercicio.

luuodoni avatar Mar 18 '24 22:03 luuodoni

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.

GabrielBMorello9 avatar Mar 31 '24 14:03 GabrielBMorello9

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.

StefanoVMasotti avatar Jul 17 '24 00:07 StefanoVMasotti

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

arrayT

Arezbi8a avatar Nov 06 '24 08:11 Arezbi8a