1、map(映射)与reduce(归约)
array.map(callback,[ thisObject]);
//callback参数(注意,callback需要return,否则数组每一项都会被映射为undefined)
[].map(function(value, index, array) {
// ...
});
//我们用ES3实现
var map = Array.prototype.map
? function(arr,fn){return arr.map(fn)}
:function(arr,fn){
var result = [];
for(var i = 0,len = arr.length; i < len; i++){
if(i in arr){
result[i] = fn.call(null,arr[i],i,arr);
}
}
}
reduce有点不同,回调callback的参数发生了变化
array.reduce(callback[, initialValue])
callback函数接受4个参数:之前值、当前值、索引值以及数组本身。initialValue参数可选,表示初始值。若指定,则当作最初使用的previous值;如果缺省,则使用数组的第一个元素作为previous初始值,同时current往后排一位,相比有initialValue值少一次迭代