Estoy tratando de iterar una string , usando un for of , para determinar los índices de los espacios vacíos que tiene la string y registrar para consolar estos índices. Tengo una string que contiene 4 espacios en blanco (¿o vacíos?), por lo que for of usar este método y hacer uso de indexOf() , espero ver en la consola 4 números de índices diferentes, sin embargo, el comportamiento es extraño y registra el índice del primer espacio en blanco encontrado, para cada espacio en blanco encontrado más tarde. ¿Qué podría estar causando esto?
Aquí hay un 'fragmento en ejecución'.
const tipo = 'Quimes Bajo Cero '; for(char of tipo){ char === ' ' ? console.log(tipo.indexOf(char)) : console.log('this character is not empty space'); }Gracias amigos.
Esto se debe a que el método indexOf devuelve el índice del primer carácter coincidente en una cadena, por lo que, en su caso, la primera coincidencia del negro está en el sexto índice. Lea la definición y el uso
puedes usar forEach, transformar la cadena y el bucle
const tipo = 'Quimes Bajo Cero '; [...tipo].forEach((char, index) => char === ' ' ? console.log(index) : console.log('this character is not empty space') )¿Tiene que implementarse con la lógica "para... de"? Lo mismo se puede hacer con la siguiente lógica también:
for(let i=0;i<tipo.length;i++){ if(tipo[i] === ' '){ console.log(i); } }