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要慢很多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值