如何找到对象中所有值和数组中包含的对象的总和?

时间:2019-03-12 10:48:22

标签: javascript

如何找到该对象中所有值的总和?在包含对象的数组中,另一个对象具有值,并且可能是具有相似结构对象的“下一个”数组。

{
  value: 4,
  next: [
    {
      value: 3,
      next: [...]
    },
    {
      value: 3,
      next: [...]
    },
    ...
  ]
}

1 个答案:

答案 0 :(得分:5)

您需要递归来处理对象的任意嵌套:

const nestedSum = o => (o.next || []).reduce((acc, o) => acc + nestedSum(o), o.value);

// Demo
const data = {
  value: 4,
  next: [{
      value: 3,
      next: [{value: 5}]
    }, {
      value: 3,
      next: []
    },
  ]
};

console.log(nestedSum(data));