用基本遍历实现JS的indexOf的功能

1,524 阅读1分钟

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。

function arrindexOf(a,b,n){
	let arr1=Array.from(a);
	let arr2=Array.from(b);
	let i=n||0;
	if(arr1.length>(arr2.length-n)){
		return -1;
	}
	for(i;i<arr2.length;i++){
		if(arr2[i]===arr1[0]){
			for(let j=0;j<arr1.length;j++){
				if(arr1[j]!==arr2[i+j]){
					//这里当不匹配的时候需要重新从当前位置再次往后查找
					arrindexOf.call(this,a,b,i+j);
				}else if(j===arr1.length-1){
					return i;
				}
				
			}
		}
	}
}
console.log(arrindexOf("ab","asdfghjklabdd"))