猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
js递归求和
A={
value:1,
items:[A,A,A] //items里面是A类型格式的对象
}
有什么好的方法,求出对象A里面所有value的总和
慕神8447489
浏览 794
回答 1
1回答
RISEBY
function sum(arr) { var _sum = 0; arr.forEach(v => _sum += v); return _sum;}function sumA(A) { if(A.items && A.items.length) { return sum([A.value].concat(a.items.map(sumA))); } else { return A.value; }}最终调用sumA求和即可。不知这样是否符合你的要求?sumA中的那个concat是为了尾递归优化,不过我也不是很肯定这么写是不是就能进行尾递归优化。更易懂的版本:function sumA(A) { if(A.items && A.items.length) { var sum = A.value; for(let a of A.items) { sum += sumA(a); } return sum; } else { return A.value; }}
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
JavaScript
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续