JS-inArray檢查數組中是否存在某個值


我們經常會用到這個一樣邏輯,判斷一個字符串或者數字是否在數組內,很多程序語言都有這樣一樣專門的函數,比如PHP的in_array()。那么JS有木有呢,很遺憾,JS木有這樣的函數,於是想到偉大的JQ是否封裝了這個函數,找到了API,JQ的確封裝了這個函數
jQuery.inArray( value, array ) 搜索數組中指定值並返回它的索引(如果沒有找到則返回-1)。
value要搜索的值。
array一個數組,通過它來搜索。

當然,處於學習,自己也去寫了這樣的函數,有2種代碼可以實現,第一種:

  1. function inArray1(needle,array,bool){  
  2.     if(typeof needle=="string"||typeof needle=="number"){  
  3.         for(var i in array){  
  4.             if(needle===array[i]){  
  5.                 if(bool){  
  6.                     return i;  
  7.                 }  
  8.                 return true;  
  9.             }  
  10.         }  
  11.         return false;  
  12.     }  
  13. }  

第二種:

  1. function inArray2(needle,array,bool){  
  2.     if(typeof needle=="string"||typeof needle=="number"){  
  3.         var len=array.length;  
  4.         for(var i=0;i<len;i++){  
  5.             if(needle===array[i]){  
  6.                 if(bool){  
  7.                     return i;  
  8.                 }  
  9.                 return true;  
  10.             }  
  11.         }  
  12.         return false;  
  13.     }  
  14. }  

三個參數,在array中查找needle,bool為布爾量,如果為true則返回needle在array中的位置,那么就會有人問,到底用哪個比較好,在性能方便,如果array數組不是很大,2則無太大的差別,如果array數組很大,則第二種速度更快一點,for..in的遍歷的確比for要慢很多


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM