JavaScript用递归查找字符串中的字符,成功返回字符个数与下标,失败返回-1
<script>
var str='abcdefabcdaba'; //a4,b3,c2,d2,e1,f1
//先手动数一下,方便调试验证
function Find(str,obj){ //str 为目标元素所在的字符串
//obj 为要查找的 字符
var point=[]; //创建一个数组,把找到的下标存进去
var pos=-1; //每次查找的起始位置
var i=0; //记录找到的个数
function find(str,obj){
pos=str.indexOf(obj,pos+1);
//if(pos!=-1)
//console.log('下标:'+pos);
if( pos == -1 )
{
//console.log('unfind'); //没找到
return i;
}
else
{
//console.log('找到一次'+obj);
point.push(pos);
++i;
return find(str,obj);
}
}
var count = find(str,obj);
if(count == 0)
return -1;
return count + ': '+point;
}
console.log(Find(str,'b'));
</script>
我在这里选择查找‘b’ ,输出结果就是下面这样,是不是 so easy