1.找出元素 item 在給定陣列 arr 中的位置

Linda_min發表於2018-07-08
本題比較簡單,先上答案:
function indexOf(arr, item) {
  if (Array.prototype.indexOf){// 判斷瀏覽器是否支援indexOf方法
      return arr.indexOf(item);
  } else {
      for (var i = 0; i < arr.length; i++){
          if (arr[i] === item){
              return i;
          }
      }
  }     
  return -1;
}


indexOf簡介

    indexOf函式既可用於返回字串中指定值的第一個索引,也可用於返回陣列中指定值的第一個索引。
    該函式分為Array.prototype.indexOf()函式和String.prototype.indexOf()函式。Array.prototype.indexOf()方法返回在陣列中可以找到一個給定元素的第一個索引,如果不存在,則返回-1;String.prototype.indexOf()方法返回字串中第一次出現的指定值的索引,如果不存在,則返回-1。

Array.prototype.indexOf()

語法:

arr.indexOf(searchElement)

arr.indexOf(searchElement[, fromIndex = 0])

引數:

searchElement:要查詢的元素
fromIndex:開始查詢的位置。如果該索引值大於或等於陣列長度,意味著不會在陣列裡查詢,返回-1。如果引數中提供的索引值是一個負值,則將其作為陣列末尾的一個抵消,即-1表示從最後一個元素開始查詢,-2表示從倒數第二個元素開始查詢 ,以此類推。 注意:如果引數中提供的索引值是一個負值,並不改變其查詢順序,查詢順序仍然是從前向後查詢陣列。如果抵消後的索引值仍小於0,則整個陣列都將會被查詢,其預設值為0。

返回值:

首個被找到的元素在陣列中的索引位置;若沒有找到則返回 -1。


String.prototype.indexOf()

語法:

str.indexOf(searchValue[, fromIndex])

引數:

searchValue:一個字串表示被查詢的值。

fromIndex (可選 :表示呼叫該方法的字串中開始查詢的位置。可以是任意整數。預設值為 0。如果 fromIndex < 0 則查詢整個字串(如同傳進了 0)。如果 fromIndex >= str.length,則該方法返回 -1,除非被查詢的字串是一個空字串,此時返回 str.length。

返回值:

指定值的第一次出現的索引; 如果沒有找到 -1。


參考連結:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

相關文章