查找数组中的元素

今日在刷牛客网上面的面试题,然后碰到手写编程题,就将他们记录下来

题目一 查找数组中的元素

题目给的是这个样子
在这里插入图片描述
其实知道数组方法的都会觉得特别简单,直接使用indexOf方法就可以实现,因为他可以查找数组中某一项在数组中第一次出现的位置的位置

function indexOf(arr, item) {
  return arr.indexOf(item);
}
indexOf([1,2,3,4],3);

但是如果浏览器不支持indexof的情况下呢,就要先判断,然后使用自定义方式

function indexOf(arr, item) {
  if (Array.prototype.indexOf){//判断数组的原型是否有index方法
      return arr.indexOf(item);
  } else {
      for (var i = 0; i < arr.length; i++){
          if (arr[i] === item){
              return i;
          }
      }
  }     
  return -1;
}
indexOf([1,2,3,4],3);

而且其实第一种方式还有一个局限性,就是如果数组中要查找的那一项还有重复的话,那么indexof只能返回该项第一次出现的位置。