gpt4 book ai didi

Javascript递归添加所有 "total"属性并返回给用户

转载 作者:行者123 更新时间:2023-11-28 14:39:38 27 4
gpt4 key购买 nike

我得到了以下数据,我需要返回递归总数(在本例中为 60)。下面的代码返回TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined指向object。我认为我在这里使用的代码不是用于数组定义的。如何将其转换为使用数组?

var data = [
{
total: 10,
moreData: {
total: 10
}
},
{
total: 10,
moreData: {
total: 10,
moreData: {
total: 10
}
}
},
{
total: 10
}
];

function sumUp(object){
object.totalValue=0;
for(child of object.children){
object.totalValue+=sumUp(child);
}
return object.totalValue+object.value;
}

totalofall=sumUp(data);
console.log(totalofall);

最佳答案

结合array.prototype.maparray.prototype.reduce的递归方式:

var data = [
{
total: 10,
moreData: {
total: 10
}
},
{
total: 10,
moreData: {
total: 10,
moreData: {
total: 10
}
}
},
{
total: 10
}
];

var sum = data.map(totInObj).reduce((m, o) => m + o, 0);
console.log(sum);

function totInObj(obj) {
return obj.moreData ? obj.total + totInObj(obj.moreData) : obj.total;
}

关于Javascript递归添加所有 "total"属性并返回给用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48535603/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com