找出陣列中元素的位置

cqj0008發表於2017-12-16
  1. 找出陣列中元素的位置: 判斷indexOf是否存在
function indexOf(arr, item) {
// 用原型判斷indexOf是否存在
  if (Array.prototype.indexOf){
      return arr.indexOf(item);
  } else { // 是在IE
      for (var i = 0; i < arr.length; i++){
          if (arr[i] === item){ //表示陣列裡面有這個元素
              return i; // 返回相應的下標
          }
      }
  }     
  return -1; // 找不到返回-1
}

2.第二種解法 : forEach

function indexOf(arr, item){
    var index = -1; // 先定義一個下標
    arr.forEach(function(res,i){  // 元素  下標
        if(res === item && index === -1){
            index = i;
        }
    });
    return index;
};
  1. 簡單的寫法 : 在支援indexOf的瀏覽器執行

    function indexOf(arr,item) {
            return arr.indexOf(item); // 直接返回index下標
        }        
  2. 設定一個變數為布林值
function indexOf(arr, item) {

    var book = true;

    for(var i = 0; i < arr.length; i++){

        if(arr[i] == item){ // 判斷陣列裡面是否有對應值

            book = false;

            return i; // 存在時,返回下標
       }
   }
    if(book == true){
        return -1; // 沒有返回-1
    }
} 

相關文章