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

251
Views
Iterando String.split () funcionando de manera diferente a lo que esperaba

Estoy escribiendo un código javascript simple para analizar y verificar una posición de ajedrez escrita en notación Forsyth-Edwards (FEN).

La posición de ajedrez por defecto en esta notación viene dada por,

const defaultFEN = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";

Hay 6 componentes, dividí los componentes por espacios en blanco usando String.split (" "), ahora quiero dividir aún más el primer elemento de la matriz resultante por "/", lo que dará el estado de cada rango.

Ejecutar este código me da un resultado poco intuitivo...

 const defaultFEN = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"; const locations = defaultFEN.split(" ")[0]; for (let rank in locations.split("/")) { console.log(rank); }

Esperaba que la salida fuera de 8 cadenas, delimitadas por "/", en la primera parte de la cadena FEN predeterminada. En cambio, obtengo los números 0-7 impresos.

Curiosamente, si accedo manualmente a esta matriz, console.log(locations.split("/")[i]) , para cualquier número i en el intervalo [0-7], veo el resultado que pretendía.

¿Por qué se imprimen los números 0-7 cuando se usa el bucle iterativo, pero funciona exactamente como se esperaba si uso un bucle for basado en un índice normal?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No hay nada malo con su división, pero debería usar for..of ( MDN ) en su lugar:

 for (let rank of locations.split("/")) { console.log(rank); }

... como for..in loop itera sobre los índices (y esos son 0..7 para una matriz de 8 elementos).

Como nota al margen, (generalmente) es una buena idea usar const (y no let ) en esta iteración, ya que a la variable se le asigna un valor una vez en cada ciclo (y generalmente no debe reasignarse):

 for (const rank of locations.split("/")) { console.log(rank); }
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!