【JavaScript】實現(xiàn)indexOf方法

indexOf()方法是ES5中出現(xiàn)的數(shù)組方法,它有兩個參數(shù)
array.indexOf(value,start)
第一個參數(shù)指定要在數(shù)組查找的值,第二個可選參數(shù)指定開始查找的數(shù)組下標(biāo)。如果省略,則為0。如果數(shù)組中存在匹配的值,就返回第一次匹配的數(shù)組下標(biāo),如果不存在匹配的值,則返回-1。
示例:['a','b','c'].indexOf('a',1) //返回-1

下面我們來自己實現(xiàn)這個方法,并保證其向下兼容性。

var indexof = function(array,value,start){
   if(array == null) return -1;
   var i=0,length = array.length;
   if(start){
       if(typeof start == 'number'){
           // 添加對start為負(fù)值時的處理
           i = (start < 0 ? Math.max(0,length+start):start);
        }
   }
   // 如果瀏覽器支持ES5 indexOf,則直接使用它
   if(Array.prototype.indexOf && array.indexOf === Array.prototype.indexOf){
        return array.indexOf(value,start);
   }
   // 遍歷數(shù)組
   for(;i<length;i++){
       if(array[i]===value){
           return i;
       }
   }
   return -1;
}
//測試
console.log(indexof([2,4,1,8,5],1,0));//輸出2

如此,我們就擴充了indexOf方法,使其在即便不支持的ES5的瀏覽器也能運行良好。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Javascript有很多數(shù)組的方法,有的人有W3C的API,還可以去MDN上去找,但是我覺得API上說的不全,M...
    頑皮的雪狐七七閱讀 4,500評論 0 6
  • 由于最近都在freecodecamp上刷代碼,運用了很多JavaScript數(shù)組的方法,因此做了一份關(guān)于JavaS...
    2bc5f46e925b閱讀 2,195評論 0 16
  • 第1章 認(rèn)識JS JavaScript能做什么?1.增強頁面動態(tài)效果(如:下拉菜單、圖片輪播、信息滾動等)2.實現(xiàn)...
    mo默22閱讀 1,514評論 0 5
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,684評論 0 4
  • 期貨交易市場魅力無窮,但是卻遍布危險! 如果你想進(jìn)入這個地方,請做好必要的心理準(zhǔn)備。以下僅是我自己的一點看法,若有...
    林溪amanda閱讀 653評論 0 7

友情鏈接更多精彩內(nèi)容