jQuery中inArray方法注意事项分析

大家都知道javascript是一种弱类型语言,对于数字类型和字符类型,可以随意切换(例如:1+""="1"),下面开始说主题:

jquery的一个方法inArray(ele, array)是判断ele是否在array中存在,返回值是该元素第一次出现在数组array中的下标,没有时返回-1。

例如:

var a = 1; var array = [1,2,3]; var b = $.inArray(a, array);

此时,b等于0。

但是,如果此时将a="1";,那么,再执行一下:

b = $.inArray(a, array);

此时,b等于-1。这将带来一个问题,因为有的人可能只希望得到这样的判断:"1" == 1,该逻辑表达式实在在javascript环境中,返回的是true,但是,在inArray中,返回的确实false,所以,如果一个数组中,存放的是非对象变量,尤其是对数字进行判断时,最好采用原始的判断方法。

也可以采用正则表达式来验证如下:

var a = 1; var reg = new RegExp("(^"+a+",)|(^"+a+"$)|(,"+a+",)|(,"+a+"$)"); var array = [1,2,3,4]; reg.test(array.toString());// true a = "1"; reg.test(array.toString());// true

好了,就说这么多~~

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgwgwg.html