Я пытаюсь выполнить итерацию string, используя for of, чтобы определить индексы пустых пространств, которые есть у string, и зарегистрировать эти индексы. У меня есть string, который содержит 4 белых (или пустых?) Пробела, поэтому, используя этот метод for of и используя indexOf(), я ожидаю увидеть в консоли 4 разных номера индексов однако поведение странное, и он регистрирует индекс первого найденного пробела для каждого пробела, найденного позже. Что может быть причиной этого?

Вот «бегущий фрагмент».

const tipo = 'Quimes Bajo Cero  ';
    
    
for(char of tipo){
  char === ' ' ? console.log(tipo.indexOf(char)) : console.log('this character is not empty space');
}

Спасибо, ребята.

1
Julio Rodríguez 10 Окт 2021 в 08:32

2 ответа

Лучший ответ

Вы можете использовать forEach, преобразовать строку и цикл

const tipo = 'Quimes Bajo Cero  ';
[...tipo].forEach((char, index) => char === ' ' ? console.log(index) : console.log('this character is not empty space')
)
1
Gabriel 10 Окт 2021 в 05:42

Это потому, что метод indexOf возвращает индекс первого совпадающего символа в строке, поэтому в вашем случае первое совпадение черного находится в 6-м индексе. Прочтите определение и использование

1
Jay Patel 10 Окт 2021 в 05:38