946 B
946 B
title, type, language, tags, author, cover, dateModified
| title | type | language | tags | author | cover | dateModified | |||
|---|---|---|---|---|---|---|---|---|---|
| Index of substrings | snippet | javascript |
|
chalarangelo | armchair-in-yellow | 2020-12-31T13:58:51+02:00 |
Finds all the indexes of a substring in a given string.
- Use
Array.prototype.indexOf()to look forsearchValueinstr. - Use
yieldto return the index if the value is found and update the index,i. - Use a
whileloop that will terminate the generator as soon as the value returned fromArray.prototype.indexOf()is-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')]; // []