我們經常會用到這個一樣邏輯,判斷一個字符串或者數字是否在數組內,很多程序語言都有這樣一樣專門的函數,比如PHP的in_array()。那么JS有木有呢,很遺憾,JS木有這樣的函數,於是想到偉大的JQ是否封裝了這個函數,找到了API,JQ的確封裝了這個函數
jQuery.inArray( value, array ) 搜索數組中指定值並返回它的索引(如果沒有找到則返回-1)。
value要搜索的值。
array一個數組,通過它來搜索。
當然,處於學習,自己也去寫了這樣的函數,有2種代碼可以實現,第一種:
- function inArray1(needle,array,bool){
- if(typeof needle=="string"||typeof needle=="number"){
- for(var i in array){
- if(needle===array[i]){
- if(bool){
- return i;
- }
- return true;
- }
- }
- return false;
- }
- }
第二種:
- function inArray2(needle,array,bool){
- if(typeof needle=="string"||typeof needle=="number"){
- var len=array.length;
- for(var i=0;i<len;i++){
- if(needle===array[i]){
- if(bool){
- return i;
- }
- return true;
- }
- }
- return false;
- }
- }
三個參數,在array中查找needle,bool為布爾量,如果為true則返回needle在array中的位置,那么就會有人問,到底用哪個比較好,在性能方便,如果array數組不是很大,2則無太大的差別,如果array數組很大,則第二種速度更快一點,for..in的遍歷的確比for要慢很多