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

250
Vistas
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 Respuestas
Responde la pregunta

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