Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

177
Vistas
Las matrices de cadenas muy grandes no funcionan como se esperaba

Tengo una matriz con 58112 palabras. Sin embargo, cuando trato de verificar si una palabra está en la lista, siempre devuelve falso, excepto la primera palabra. No voy a publicar mi código porque sería demasiado grande, pero aquí están algunas de las cosas principales:

 isWord("a") //true isWord("hello") //false?? function isWord(word) { word = word.toLowerCase(); for (let i = 0; i < words.length; i++) { if (word == words[i]) { return true; } else { return false; } } }

words[] es la lista de 58112 palabras. La primera palabra es "a", por supuesto. Cuando hago isWord("a") , devuelve verdadero, como se esperaba. Si hago algo que no sea "a", devuelve falso. ¿Por qué ocurre esto? ¿Es porque excedí el límite máximo de matriz? No me parece.
Las palabras que usé son de esto (tuve que agregar la "a" y la "i" porque no tenían) .

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Me di cuenta de que lo hiciste

 return false;

Eso haría que nada después de la declaración de devolución no se ejecute (y como resultado, su código deja de ejecutarse después de una iteración). Recomendaría reemplazarlo con una declaración de impresión o almacenar el resultado en una variable booleana e imprimirlo en otro lugar, O tal vez devolver la variable booleana para que no tenga que cambiar mucho el otro código. Eso se puede hacer de esta manera:

 isWord("a") //true isWord("hello") //false?? function isWord(word) { var boolean check = false; //setting it to false by default removes the need for the "else" statement word = word.toLowerCase(); for (let i = 0; i < words.length; i++) { if (word == words[i]) { check = true; } } return check; }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedo estar equivocado, pero creo que esto se debe a que cuando verifica si la palabra está en la matriz de palabras o no.

En la primera iteración de la matriz, si encuentra que la palabra que ingresó es a valor de words[0] , devuelve true . De lo contrario, si devuelve false y sale de la función.

Básicamente, solo verifica si el elemento que ingresó es igual a a o no.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí hay una forma más rápida y concisa de lograr la misma funcionalidad.

 function isWord(word) { word = word.toLowerCase() var i = word.length; while (i--) { if (words[i] === word) { return true; } } return false; }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda