子字符串的索引
在给定字符串中找到所有子字符串的索引。
- 使用
Array.prototype.indexOf()
在str
中查找searchValue
。 - 使用
yield
返回找到的索引并更新索引i
。 - 使用
while
循环,一旦从Array.prototype.indexOf()
返回的值为-1
,就终止生成器。
const indexOfSubstrings = function* (str, searchValue) {
let i = 0;
while (true) {
const r = str.indexOf(searchValue, i);
if (r !== -1) {
yield r;
i = r + 1;
} else return;
}
};
[...indexOfSubstrings('tiktok tok tok tik tok tik', 'tik')]; // [0, 15, 23]
[...indexOfSubstrings('tutut tut tut', 'tut')]; // [0, 2, 6, 10]
[...indexOfSubstrings('hello', 'hi')]; // []