代码如下: var a = [1,2,3]; function map(fn, a, init){ var s = init; for (i = 0; i < a.length; i++){ s = fn(s,a[i]); } return s; } alert(map(function(x,y){return x+y;}, a , 0)) //把数组的各个元素相加求和 alert(map(function(x,y){return x+y;}, a , "")) //把数组的各个元素连接起来
map 函数定义了对 a 数组遍历一次,但具体对各个元素执行何种操作,却没有定义,需要从其第一个参数来定义。