以字符串abcoefoxtozzopp为例,本次目的是查找在这个字符串中“o”出现了多少次及其出现的位置(将它的位置返回到一个数组中);
首先定义一个空数组和一个计数器b;
遍历数组,用indexOf查找o;
每次查到之后,将本次o出现的位置push到数组中,并且b++,即出现次数+1;
下次查找时直接跳到上一次o出现的位置开始往后查找,不需要一个一个遍历。
var str='abcoefoxtozzopp';
var arr=[];
var b=0;
for (var i=0;i<str.length;i++){
str.indexOf('o',i);
if (str.indexOf('o',i)>-1){
b++;
arr.push(str.indexOf('o',i));
i=str.indexOf('o',i);
}
}
console.log(b);
console.log(arr);