jQuery源码分析5: jQuery.map

jQuery源码分析5: jQuery.map

函数用途:使用jQuery.map将数组elems中的元素通过callback映射到另一个数组中

isArray: Array.isArray || function( obj ) {
return jQuery.type(obj) === "array";
},

map: function( elems, callback, arg ) {
var value,
key,
ret = [],
i = 0,
length = elems.length,
// 判断elems 是否是数组的方法,其中jQuery对象也视为数组
isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;

//< 遍历数组elems, 将每一项通过callback映射到ret数组中
if ( isArray ) {
for ( ; i < length; i++ ) {
value = callback( elems[ i ], i, arg );

if ( value != null ) {
ret[ ret.length ] = value;
}
}

//< 使用for...in遍历对象elems, 将每一个属性通过callback映射到ret数组中
} else {
for ( key in elems ) {
value = callback( elems[ key ], key, arg );

if ( value != null ) {
ret[ ret.length ] = value;
}
}
}

// Flatten any nested arrays
return ret.concat.apply( [], ret );
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值