封装数组方法 lastIndexOf() 机制方法
方法一
// 方法一 问题在哪复杂度高
function(arr,targrt) {
let obj = {};
let index = 0;
for(var i =0; i<target;i++){
if(!index && obj[target] ){
index = i;
}
obj[target] = i;
}
return obj[target]+i;
}
方法二
// 方法一 问题在哪复杂度高
function(arr,targrt) {
let arr = arr.toString().replace(/,/g,'');
let pos = [];
let index = arr.indexOf(target);
while(i> -1){
pos.push(index)
pos.indexOf(target,index + 1);
}
alert(pos)
}
不断增加indexOf()方法开始查找的位置,遍历了一个长字符串
在循环之外,首先找到了“e”在字符串中的初始位置;
而进入循环后,则每次都给indexOf()传递上一次的位置加1。
这样,就确保了每次新搜索都从上一次找到字符串的后面开始。
每次搜索返回的位置一次被保存在数组positions中,以便将来使用。
方法三
// 方法一 问题在哪复杂度高
function(arr,targrt) {
let arrs = arr.toString().replace(/,/g,'');
return arrs.lastIndexOf(targrt)
}