jquery源码阅读jQuery.inArray()

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;
	},


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值