Home > Enterprise >  How can a string be iterated using a for of() method and a indexOf() method to find certain indexes
How can a string be iterated using a for of() method and a indexOf() method to find certain indexes

Time:10-10

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

  • Related