案例:
indexOf是可以传两个参数的,我们从查找字符串"abcoefoxyozzopp"中所有o出现的位置以及次数
和['red', 'blue', 'red', 'green', 'pink','red'], 求 red 出现的位置和次数分别来看
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
// 查找字符串"abcoefoxyozzopp"中所有o出现的位置以及次数
// 核心算法:先查找第一个o出现的位置
// 然后 只要indexOf 返回的结果不是 -1 就继续往后查找
// 因为indexOf 只能查找到第一个,所以后面的查找,一定是当前索引加1,从而继续查找
var str = "oabcoefoxyozzopp";
var index = str.indexOf('o');
var num = 0;
// console.log(index);
while (index !== -1) {
console.log(index);
num++;
index = str.indexOf('o', index + 1);
}
console.log('o出现的次数是: ' + num);
// 课后作业 ['red', 'blue', 'red', 'green', 'pink','red'], 求 red 出现的位置和次数
let arr=['red', 'blue', 'red', 'green', 'pink','red'];
let res=0;
let index2=arr.indexOf('red');
while(index2!=-1){
res++;
console.log(index2);
index2=arr.indexOf('red',index2+1);
}
console.log('red出现的次数是: '+ res);
</script>
</head>
<body>
</body>
</html>
总结
indexOf和lastIndexOf都是可以传两个参数的,假如第二个参数是index,两者不同的是indexOf是从index开始向后搜索lastIndexOf是从index开始向前搜索至字符串开头。
同样很多方法都有第二个参数,要学会用