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

174
Views
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 answers
Answer question

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 Report

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 Report

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 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!