牛骨文教育服务平台(让学习变的简单)
博文笔记

jquery源码阅读jQuery.inArray()

创建时间:2015-08-09 投稿人: 浏览次数:1399

jQuery.inArray 函数用查找某个value在数组中的位置( Search for a specified value within an array and return its index (or -1 if not found).

该API解释及例子在这里

inArray: function( elem, array, i ) {
		var len;

		if ( array ) {
			//indexOf :jQuery开始定义了 indexOf = Array.prototype.indexOf 如果有indexOf 方法则用改方法返回,核心为indexOf方法
			if ( indexOf ) {
				return indexOf.call( array, elem, i );
			}

			len = array.length;
			/*
				注意该条语句是给i赋值用的,猛的一看该语句可能产生混淆
				首先判断i的值,i ? (i < 0 ? Math.max( 0, len + i ) : i ): 0 如果 i 未定义 或者i为0 则 把0赋值给i
				如果i 定义了并且不为0 执行 i < 0 ? Math.max( 0, len + i ) : i
				如果i 为负数,加上则为其加上数组长度,且其值不能小于0
			*/
			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;

			for ( ; i < len; i++ ) {
				// Skip accessing in sparse arrays 这么判断主要是考虑数组下标不连续的情况注意学习这种方式 i in arry 的判断方式
				if ( i in array && array[ i ] === elem ) { 
					return i;
				}
			}
		}

		return -1;
	},


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。