jQuery的map()方法把数组每一项经过callback处理后的值依次加入到返回数组中。
1、map()的用法:
$.map( [1,2,3], function(n){
return n * 2;
});
结果:[2,4,6]
2、jQuery的map()源码如下:
core_deletedIds = [],
core_concat = core_deletedIds.concat,
map: function(elems, callback, arg) {
var value, i = 0, length = elems.length, isArray = isArraylike( elems ), ret = [];
if (isArray) {
for (; i < length; i++) {
value = callback(elems[i], i, arg);
if (value != null) // 如果返回值是null,则不加入结果中
ret[ret.length] = value;
}
}
else {
for (i in elems) {
value = callback(elems[i], i, arg);
if (value != null)
ret[ret.length] = value;
}
}
return core_concat.apply([], ret); // 这里相当于 var a = [];a.concat(ret)
},