如果你需要一个数据请使用map()方法
map()函数以匿名函数作为参数
map函数的参数为匿名函数,发返回值为数组
匿名函数中的
第一个参数:当前数组中的成员
第二个:当前数组在数组中的索引
第三个:调用map()方法的数组本身
es6-箭头函数实现
如果要输出多个属性值 .map(_d=>({_.age,_d.name}))
如果你需要一个结果请使用reduce()方法
两个参数①回调的方法②初始的值
_n承接计算的结果,初始值是0
如果你要过滤一个结果请使用filter()方法
filter()函数:参数为匿名函数,返回值是一个数组
匿名函数的参数为数组的每一个对象
符合条件的对象就会被包含到一个数组中返回出来
自定义实现三个方法
const numbers =[1,2,3,4,5]
//将函数抽取出来
const double = (v) =>v * 2
const isEven = (v)=>v % 2===0
const add=(prev,curv)=>prev+curv
//运用提供的方法实现
const mapResult = numbers.map(double)
//自定义map
const mapResult2 = map(double,numbers)
function map(pmeth,arr){
const result=[]
for(let item of arr){
result.push(pmeth(item))
}
return result
}
//运用提供的方法实现
const filterResult =numbers.filter(isEven)
//自定义filter
function filter(premeth,arr){
const result=[]
for(let item of arr){
if(premeth(item)){
result.push(item)
}
return result
}
}
//运用提供的方法实现
const reduceResult=numbers.reduce(add,0)
//自定义reduce
function reduce(fn,initValue,arr){
let value=initValue
for(let item of arr){
value=fn(value,item)
}
return value
}
以上总结来自B站:爱写代码的坦坦 和一位已经注销的网友