indexOf循环
时间: 2023-06-21 21:09:13 浏览: 57
indexOf() 方法是 JavaScript 中用来查找一个字符串中是否包含子字符串的方法。如果包含,则返回子字符串首次出现的位置(下标),否则返回 -1。
可以通过循环调用 indexOf() 方法,来查找字符串中所有出现的子字符串,例如:
```javascript
let str = 'hello world';
let substr = 'l';
let index = str.indexOf(substr);
while (index !== -1) {
console.log(`Substring found at index ${index}`);
index = str.indexOf(substr, index + 1);
}
```
这个例子中,我们首先定义了一个字符串 `str` 和一个子字符串 `substr`。然后调用了一次 `indexOf()` 方法来查找 `substr` 在 `str` 中第一次出现的位置,将结果赋值给变量 `index`。
接着使用 while 循环,判断 `index` 是否等于 -1,如果不等于,则说明 `substr` 在 `str` 中出现过,输出它在 `str` 中的位置,并且调用 `indexOf()` 方法继续查找下一个出现位置,直到 `indexOf()` 方法返回 -1,表示全部查找完毕。
相关问题
js indexOf数量
JavaScript中的indexOf方法用于返回指定元素在数组中第一次出现的位置索引。它接受一个参数,即要搜索的元素值,并返回该元素在数组中的索引值。如果数组中不存在该元素,则返回-1。
如果你想要统计数组中某个元素出现的次数,你可以使用循环遍历数组,并利用indexOf方法来进行计数。
以下是一个示例代码:
```javascript
function countOccurrences(arr, element) {
let count = 0;
let index = arr.indexOf(element);
while (index !== -1) {
count++;
index = arr.indexOf(element, index + 1);
}
return count;
}
const arr = [1, 2, 3, 4, 2, 5, 2];
const element = 2;
const occurrences = countOccurrences(arr, element);
console.log(`元素${element}在数组中出现了${occurrences}次。`);
```
这段代码中,countOccurrences函数接受一个数组和一个元素作为参数,然后使用indexOf方法循环搜索该元素并进行计数,直到找不到该元素为止。最后返回计数结果。
js手写indexOf
JavaScript的indexOf方法是用于查找字符串中指定子串第一次出现的位置的方法。在JavaScript中,为了实现字符串的indexOf方法,可以使用Polyfill来手动实现。
下面是一个手写的indexOf方法的示例代码:
```javascript
if (!String.prototype.indexOf) {
String.prototype.indexOf = function(searchString, fromIndex) {
let i;
if (typeof searchString == 'undefined') {
searchString = 'undefined';
}
searchString = String(searchString);
let flen = this.length;
let zlen = searchString.length;
fromIndex = Number(fromIndex) || 0;
if (isNaN(fromIndex) || fromIndex < 0) {
i = 0;
} else if (fromIndex >= flen) {
return -1;
} else {
i = fromIndex;
}
if (zlen > flen) {
return -1;
} else if (zlen == flen) {
if (this == searchString) {
return 0;
} else {
return -1;
}
} else {
let str = '';
while (i < flen) {
str = this.substr(i, zlen);
if (str == searchString) {
return i;
}
i++;
}
if (i == flen) {
return -1;
}
}
};
}
```
这个手写的indexOf方法首先判断是否已经存在indexOf方法,如果不存在则将其定义为String.prototype的一个新的方法。然后在方法体内部,根据传入的参数进行相应的处理。
首先,将searchString转换为字符串类型,并获取原始字符串和子串的长度。接着,判断fromIndex是否为有效的数字,如果不是,则设置其默认值为0。然后根据fromIndex的值确定搜索的起始位置。
在循环中,使用substr方法逐个截取原始字符串中与子串长度相等的子串,然后与子串进行比较。如果相等,则返回当前索引位置;如果不相等,则继续循环直到搜索完整个字符串。如果循环结束后仍未找到匹配的子串,则返回-1表示未找到。
这样,通过手写的方式实现了JavaScript的indexOf方法。