共计 743 个字符,预计需要花费 2 分钟才能阅读完成。
reduce
数组的方法,有两个参数 回调函数 callback 和 initialValue 回调有四个参数 prev、next、index、arrinitialValue:可选参数,作为 callback 第一次的 prev;如果传了 initialValue:prev 第一次为 initialValue,之后为 return 的值。next 为数组的每一项 index 为数组的下标 arr 为原数组如果没传 initialValue:prev 第一次为数组的第一项,之后为 return 的值。next 为从数组的第二项开始的每一项 index、arr 不受影响
下划线转驼峰
let str = “my_name_is_sxq”;
let result = str.split(”).reduce((p,n,i,arr)=>{
if(n==’_’){
arr[i+1] = arr[i+1].toUpperCase()
return p
}
return p + n
})
数组扁平化
// 二维转一维
let arr = [1,2,3,[4,5],[6,7,[8,9]]];
let newarr = arr.reduce(function(prev,next){
return Array.isArray(next)?prev=prev.concat(…next):prev=prev.concat(next)
},[])
数组转对象
// 路由数组转对象
let arr = [{path:’/’,component:function(){}},{path:’/user’,component:function(){}}]
let result = arr.reduce((memo,current)=>{
memo[current.path] = current.component
return memo
},{})