入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

js inArray() jQuery.inArray( value, array )

创建时间:2016-03-21 投稿人: 浏览次数:1265

我们经常会用到这个一样逻辑,判断一个字符串或者数字是否在数组内,很多程序语言都有这样一样专门的函数,比如PHP的in_array()。那么JS有木有呢,很遗憾,JS木有这样的函数,于是想到伟大的JQ是否封装了这个函数,找到了API,JQ的确封装了这个函数jQuery.inArray( value, array ) 搜索数组中指定值并返回它的索引(如果没有找到则返回-1)。value要搜索的值。array一个数组,通过它来搜索。

当然,处于学习,自己也去写了这样的函数,有2种代码可以实现,第一种:

[javascript] view plaincopy
  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. }    

第二种:

[javascript] view plaincopy
  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要慢很多


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。