首頁 >web前端 >js教程 >reduce的用法技巧(程式碼範例)

reduce的用法技巧(程式碼範例)

不言
不言轉載
2019-03-18 10:29:332001瀏覽

這篇文章帶給大家的內容是關於reduce的用法技巧(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

reduce

陣列的方法,有兩個參數回呼函數callback 和 initialValue
回呼有四個參數 prev、next、index、arr
initialValue:選用參數,作為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
    },{})

#

以上是reduce的用法技巧(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除