数组lastIndexOf()

124 阅读1分钟

封装数组方法 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)
  }