如何使用 for of() 方法和 indexOf() 方法迭代字符串以查找某些索引并获得预期结果?
How can a string be iterated using a for of() method and a indexOf() method to find certain indexes and getting the expected results?
我正在尝试使用 for of
迭代 string
,以确定 string
具有的空 space 的索引,并记录以控制这些索引。我有一个包含 4 个白色(或空?)space 的 string
,因此使用此 for of
方法并利用 indexOf()
,我希望看到console 4 个不同的索引号,然而,行为很奇怪,它记录了第一个找到的白色 space 的索引,对于后来找到的每个白色 space。可能是什么原因造成的?
这是 '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');
}
谢谢大家。
那是因为 indexOf
方法 returns 字符串中第一个匹配字符的索引,所以在你的情况下,黑色的第一个匹配项在第 6 个索引处。 Read the Definition and Usage
您可以使用 forEach,转换字符串并循环
const tipo = 'Quimes Bajo Cero ';
[...tipo].forEach((char, index) => char === ' ' ? console.log(index) : console.log('this character is not empty space')
)
是否必须使用“for...of”逻辑来实现?也可以使用以下逻辑来完成相同的操作:
for(let i=0;i<tipo.length;i++){
if(tipo[i] === ' '){
console.log(i);
}
}
我正在尝试使用 for of
迭代 string
,以确定 string
具有的空 space 的索引,并记录以控制这些索引。我有一个包含 4 个白色(或空?)space 的 string
,因此使用此 for of
方法并利用 indexOf()
,我希望看到console 4 个不同的索引号,然而,行为很奇怪,它记录了第一个找到的白色 space 的索引,对于后来找到的每个白色 space。可能是什么原因造成的?
这是 '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');
}
谢谢大家。
那是因为 indexOf
方法 returns 字符串中第一个匹配字符的索引,所以在你的情况下,黑色的第一个匹配项在第 6 个索引处。 Read the Definition and Usage
您可以使用 forEach,转换字符串并循环
const tipo = 'Quimes Bajo Cero ';
[...tipo].forEach((char, index) => char === ' ' ? console.log(index) : console.log('this character is not empty space')
)
是否必须使用“for...of”逻辑来实现?也可以使用以下逻辑来完成相同的操作:
for(let i=0;i<tipo.length;i++){
if(tipo[i] === ' '){
console.log(i);
}
}