首页 > 解决方案 > 在 n 级嵌套数组中对对象值进行分组

问题描述

我有一个这样的数组。如何将所有子 ID 分组到一个数组中?我下面的解决方案不是给我所有的子元素。错误在哪里?并建议我任何其他方式

const data = {
  name: '1',
  id: '05f770d5',

  child: [
    {
      name: '2',
      id: '0ecfc8e1',
      child: [
        {
          name: '3',
          id: '2e1eb75c',
          child: [],
        },
      ],
    },
    {
      name: '1c',
      id: 'b9ee9864',
      child: [
        {
          name: '8',
          id: '575f4760',
          child: [],
        },
      ],
    },
  ],
};

let array1 = [];

function sumChild(data) {
  data.child.forEach((data) => {
    array1.push(data.id);
    sumChild(data?.child[0]);
  });

  return array1;
}

sumChild(data);

console.log(array1);

标签: javascriptarraysjsonobject

解决方案


function sumChild(data) {
  data.child?.forEach((data) => {
    array1.push(data.id);
    sumChild(data);
  });

  return array1;
}

推荐阅读