jQuery中提供了inArray()函數(shù)來判斷一個值是否在數(shù)組中存在,那么它的源碼是什么樣的呢?
jQuery.inArray = function( elem, arr, i ) { return arr == null ? -1 : indexOf.call( arr, elem, i ); };
可以看到,inArray()函數(shù)的實現(xiàn)是調(diào)用了JavaScript原生的indexOf()方法來進行判斷。
但是一些老版本的瀏覽器可能不支持indexOf()方法,這時候就需要重新寫一個類似于indexOf()的方法,如下:
function inArray( elem, arr, i ) { var len; if ( arr ) { if ( indexOf ) { return indexOf.call( arr, elem, i ); } len = arr.length; i = i ? i< 0 ? Math.max( 0, len + i ) : i : 0; for ( ; i< len; i++ ) { // Skip accessing in sparse arrays if ( i in arr && arr[ i ] === elem ) { return i; } } } return -1; }
這段代碼實現(xiàn)的方法是遍歷整個數(shù)組,通過判斷元素是否在數(shù)組中存在來返回相應(yīng)的下標(biāo)。
總的來說,inArray()函數(shù)是一個非常有用和方便的函數(shù),可以用來判斷一個數(shù)組中是否存在某個元素。
上一篇css后面的 號
下一篇dockerextc