找出元素在数组中的位置

网上很常见的一个题目:

题目描述:找出元素 item 在给定数组 arr 中的位置。

输出描述:如果数组中存在item,则返回元素在数组中的位置,否则返回-1。

示例:输入{1,2,3,4},3

结果:2

 

JS代码:

function indexOf(arr,item){
  if(Array.prototype.indexOf){
      return arr.indexOf(item);
  } else{
      for(var i=0;i<arr.length;i++){
          if(arr[i]===item){
              return i;
          }
      }
  }
  return -1;
}

 

第一个if通过prototype判断浏览器Array原型中有没有indexOf()方法,若没有则执行自定义的方法。这里只是返回值,并不能显示在页面上,要显示的话直接输出

找出元素在数组中的位置

 

但是该题目没有考虑到数组元素是否重复的问题,更标准的答案应该是新建一个数组,用来装item元素的位置,最后输出新数组。

找出元素在数组中的位置

操作结果为找出元素在数组中的位置