我想這deepMap([4,5, [3,4,[2]]], x => x + 5)
通過這個功能:如何使用在Javascript中的參數中創建的函數?
const deepMap = (arr, fn) => {
return arr.reduce((first, second) => first.concat(Array.isArray(second) ? [deepMap(second)] : fn), []);
}
以前,它的工作是這樣的:
const deepMap = (arr, fn) => {
return arr.reduce((first, second) => first.concat(Array.isArray(second) ? [deepMap(second)] : second + 5), []);
}
但是這並沒有讓我使用該函數的第二個參數。我知道它需要像第二個例子那樣工作,但我能想到改變它的唯一方式就像在第一個例子中那樣。我嘗試了許多變化,但我一直在收到錯誤或錯誤的答案。
'Array.concat'期望的陣列 - '[第二+ 5]'? – jonrsharpe
在'deepMap'函數內部,作爲參數傳遞的函數名爲'fn',所以你把它叫做'fn(xyz)'。如果您希望隨後對'deepMap'進行遞歸調用以便能夠調用它,則必須將其傳遞:'deepMap(second,fn)'。 –
您是否收到任何錯誤? – Olga