我不知道糟糕的crossbrowser兼容性array.indexOf()
.但是现在我,我需要找到一种方法来实现相同的东西,但不使用以前的方法.
我尝试了谷歌搜索一段时间,但没有找到真正有说服力的答案.现在,我正在使用循环(但这很慢,我相信有更好的方法)
附注:
我认为没有必要共享我的代码,因为你们都知道数组循环检查是什么样的(加上它会降低你的智商)
以下是如何在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;
}
Run Code Online (Sandbox Code Playgroud)
你不能使用jQuery,但为什么不使用他们的实现?:-)
最好的祝福!