我不知道
array.indexOf()
的错误的crossbrowser兼容性.但是现在我,我需要找到一种方法来实现相同的东西,但不使用以前的方法.
我尝试了谷歌搜索一段时间,但没有找到真正有说服力的答案.现在,我正在使用循环(但这很慢,我相信有更好的方法)
附注:
>我不能使用jQuery或任何其他库/框架.
>它不一定需要返回索引(简单地为true / false)
会好的)
解决方法
以下是如何在jQuery中实现inArray:
- function inArray(elem,array,i) {
- var len;
- if ( array ) {
- if ( array.indexOf ) {
- return array.indexOf.call( array,elem,i );
- }
- len = array.length;
- i = i ? i < 0 ? Math.max( 0,len + i ) : i : 0;
- for ( ; i < len; i++ ) {
- // Skip accessing in sparse arrays
- if ( i in array && array[ i ] === elem ) {
- return i;
- }
- }
- }
- return -1;
- }
你不能使用jQuery,但为什么不使用他们的实现?