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

你可能感兴趣的:(jquery)