js如何判斷陣列中是否存在指定的值並返回索引

antzone發表於2017-03-12

有時候需要判斷陣列中是否含有指定的元素,並且返回次元素在陣列中的索引值,達成這個目的的方式有多種,下面簡單的介紹一下其中的兩種,希望能夠給需要的朋友帶來一定的幫助。

[JavaScript] 純文字檢視 複製程式碼
function searchArray(arrOb,value){ 
  for(var i=0,len=arrOb.length;i<len;i++){ 
    if(arrOb[i]==value){ 
      return i; 
    } 
  } 
  return -1; 
}

以上程式碼實現了我們的要求,可以便利陣列元素,如果有陣列元素和指定的值相等,那麼就會返回此值在陣列中的索引,否則返回-1.

[JavaScript] 純文字檢視 複製程式碼
function searchArray(arrOb,value){ 
  var str=arrOb.toString(); 
  var index=str.indexOf(value); 
  if(index >= 0){ 
    var reg=new RegExp("((^|,)"+value+"(,|$))","gi"); 
    return str.replace(reg,"$2@$3").replace(/[^,@]/g,"").indexOf("@"); 
  }
  else{ 
    return -1;
  } 
}

以上程式碼同樣可以實現相同的功能。先將陣列轉換為字串,然後在使用正規表示式匹配,執行效率要比第一個高。

相關文章