我试图递归地遍历一个数组,收集所有的值并求和.任何这样做的try 都会导致堆栈溢出.告诉我如何在不使用附加变量的情况下实现函数1)使用附加变量2).
const numbers = [
{
number: [
{
number: 3,
},
{
number: [
{
number: 5
}
]
},
]
},
{
number: 8
}
]
function getSumOfNumbers(numbers) {
if (Array.isArray(numbers)) {
for (const child of numbers) {
getSumOfNumbers(child);
}
}
if (!Array.isArray(numbers) && typeof (numbers) == 'object') {
for (const key in numbers) {
getSumOfNumbers(numbers[key]);
}
}
if (typeof (numbers) == 'number') {
return numbers + getSumOfNumbers(numbers);
}
}
getSumOfNumbers(numbers)