2017-06-14 73 views
0

我試圖建立一個mapDeep功能(遞歸映射下一個嵌套的數組):如何修復以下mapDeep函數?

mapDeep (array, callback) { 
    return array.map(item => { 
    if (Array.isArray(Object.values(item)[0])) { 
     return mapDeep(Object.values(item)[0]) 
    } else { 
     return callback(Object.values(item)[0]) 
    } 
    }) 
}, 

mapDeep(input.schema, field => { 
    console.log('field:', field) 
}) 

現在,我發現了以下錯誤:Uncaught TypeError: callback is not a function

如何修改代碼修復功能?

Codepen

輸入:

schema: [{ 
    fields: [{ 
    (...) 
    }, { 
    (...) 
    }] 
}, { 
    fields: [{ 
    (...) 
    }] 
}] 
+0

「*'Object.values(項目)[0]'*」 ?不要這樣做。明確你的意思是'item.fields'。如果您需要它是通用的,請將屬性名稱作爲另一個參數傳遞。 – Bergi

回答

2

傳遞參數到遞歸調用:

​​