I'm trying to iterate a string
, using a for of
, in order to determine the indexes of the empty spaces that the string
has, and log to console these indexes. I have a string
that contains 4 white(or empty?) spaces, so using this for of
method and making use of indexOf()
, I'm expecting to see in console 4 different indexes numbers, however, the behavior is weird and it logs the index of the first white space found, for every white space found later. What could be causing this?
Here's a 'running snippet'.
const tipo = 'Quimes Bajo Cero ';
for(char of tipo){
char === ' ' ? console.log(tipo.indexOf(char)) : console.log('this character is not empty space');
}
Thank folks.
CodePudding user response:
That is because indexOf
method returns the index of the first matching char in a string so in your case black's first match is at the 6th index. Read the Definition and Usage
CodePudding user response:
you can use forEach, transform the string and loop
const tipo = 'Quimes Bajo Cero ';
[...tipo].forEach((char, index) => char === ' ' ? console.log(index) : console.log('this character is not empty space')
)