javascriptstringindexoffor-of-loop

How can a string be iterated using a for of() method and a indexOf() method to find certain indexes and getting the expected results?


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.


Solution

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