未知数量对象的JS数组递归

JS array recursion for unknown number of objects

我在 JS 中有一个包含嵌套对象的对象,还有一个包含同名数组的对象,可以多次弹出不同的值。 我只想总结每个数组的长度,总是更深一层,直到这个对象丢失。

例如:

0 : {id: 1, importantObject: {id: 1, {importantObject: {id: 1, importantObject:{...},}, somethingElse: 23}, something: 'test'}

1 : {id: 2, importantObject: {id: 24, {importantObject: {id: 55, importantObject:{...},}, somethingElse: 92}, something: 'test'}

等等..

我已尝试执行以下操作:

const getCount = (a) => {
    let count = 0;
    a.map((b) => {
      if (b.importantObject) {
        count += b.importantObject.length;
        getCount(b.importantObject)
      }
    });
     return count;
  }

但是,我没有得到正确的计数。我做错了什么?

做递归时必须使用递归调用return值

const getCount = (a) => {
  let count = 0;
  for (let b of a) {
    if (b.importantObject) {
      count += b.importantObject.length;
      count += getCount(b.importantObject); // here
    }
  }
  return count;
}