jQuery源码浅谈系列---$.inArray
?
之所以谈论一下这个api,是因为我以前在设计我自己的凤凰组件库的时候写过一个array的indexOf,然后我也写了一个JavaScript1.6新特性里面介绍的7个array扩展的api.所以回归到jQuery的源码再来看,可能就很简单了。
?
jQuery.inArray(value,array)
?
?? ? ? ? ? 确认第一个参数在数组中的位置,从0开始计数(如果没有就返回-1)
?
?
value ?----------用于在数组中查找的项是否存在array ? ----------{Array}源码展示:
//简单测试一下var arr = [0,1,2];console.log($.inArray(0,arr)); //0console.log($.inArray('a',arr)); //-1?总结一下:其实无论我们在编写自己的lib还是在一般的小项目里面,你如果看过hax的api设计讲座的话你会知道扩展Object.prototype的做法是不推荐的,或者尽量少用的。很多人在以前的项目里面自己在Array.prototype扩展了类似的indexOf,当然在IE8和以下的版本可能还是走你扩展的这个api,但是像ff等支持的高于JavaScript1.6版本以上的浏览器,它会去找原生的indexOf