獲取錯誤 arr.reduce 不是多維陣列的函式 - 適用于簡單陣列 - 不確定出了什么問題?
let arr = [4, [5, 7]]
let sum = 0
const calculateSum = (arr) => {
return arr.reduce(function(acc, currentVal) {
const isEntryArray = Array.isArray(currentVal)
if (isEntryArray) {
acc= acc calculateSum(isEntryArray)
} else {
acc = acc currentVal
}
return acc
}, 0)
}
console.log(calculateSum(arr))
console.log(sum) ```
uj5u.com熱心網友回復:
而不是使用遞回函式將陣列展平,然后使用 reduce 來計算總和。
const arr = [4, [5, 7, [12, [1, 2]]]];
function calculateSum(arr) {
return arr.flat(Infinity).reduce(function (acc, c) {
return acc c;
}, 0);
}
console.log(calculateSum(arr));
uj5u.com熱心網友回復:
當你這樣做時,你傳遞的是一個布林值而不是陣列:
acc= acc calculateSum(isEntryArray)
// ^^^ from Array.isArray()
我相信你想要的是傳入當前的子陣列
acc= acc calculateSum(currentVal)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/396292.html
標籤:javascript 减少
