javascript的Array.prototype.map()和jQuery的jQuery.map()

两个方法都可以根据现有数组创建新数组,但在使用过程中发现有些不同之处

以下面这个数据为例:

var numbers = [1, 3, 4, 6, 9];

1. 对undefined和null的处理

array.map创建的新数组中对应的元素为undefined或null, jquery创建的新数组中则不包含这个元素

Array.prototype.map:

numbers.map(function(v, i, arr) {
if (i == 3) {
return undefined;
}else{
return { index: i, value: v, array: arr };
}
})

结果如图:

javascript的Array.prototype.map()和jQuery的jQuery.map()

jQuery.map:

$.map(numbers, function(v, i) {
if (i == 3) {
return undefined;
} else {
return { index: i, value: v};
}
});

结果如图:

javascript的Array.prototype.map()和jQuery的jQuery.map()

2. 对数组的处理

array.map将数组作为新创建数组的一个元素,jquery.map将数组中的每个元素作为新数组的元素

Array.prototype.map:

numbers.map(function(v,i,arr){
return [ v + v, v * v]
})

结果如图:

javascript的Array.prototype.map()和jQuery的jQuery.map()

jQuery.map:

$.map(numbers, function(v, i) {
return [ v + v, v * v]
});

结果如图:

javascript的Array.prototype.map()和jQuery的jQuery.map()

上一篇:BZOJ_3585_mex && BZOJ_3339_Rmq Problem_莫队+分块


下一篇:JDK5-静态导入