Javascript 如何将项目添加到所有树数组';Js中的对象是什么?

Javascript 如何将项目添加到所有树数组';Js中的对象是什么?,javascript,arrays,reactjs,tree,treeview,Javascript,Arrays,Reactjs,Tree,Treeview,我想按顺序标识树数组中的所有对象。为此,我需要迭代所有数组对象以及对象的子对象、子对象、子对象等。。并将rowId插入到每个 我所拥有的 rows={[ { car: 'Audi A4', city: 'Las Vegas', items: null, name: 'Sandra', sex: 'Female' }, { car: 'Chevrolet Cruze', city: 'Tokyo', items: [

我想按顺序标识树数组中的所有对象。为此,我需要迭代所有数组对象以及对象的子对象、子对象、子对象等。。并将rowId插入到每个

我所拥有的

rows={[
  {
    car: 'Audi A4',
    city: 'Las Vegas',
    items: null,
    name: 'Sandra',
    sex: 'Female'
  },
  {
    car: 'Chevrolet Cruze',
    city: 'Tokyo',
    items: [
      {
        car: 'BMW 750',
        city: 'London',
        items: [
          {
            car: 'Toyota Corolla',
            city: 'Chicago',
            name: 'David',
            sex: 'Male'
          },
        ],
        name: 'Robert',
        sex: 'Male'
      }
    ],
    name: 'Sharon',
    sex: 'Female'
  }
]}
我所期望的

rows={[
  {
    car: 'Audi A4',
    city: 'Las Vegas',
    items: null,
    name: 'Sandra',
    sex: 'Female',
    rowId: 1
  },
  {
    car: 'Chevrolet Cruze',
    city: 'Tokyo',
    items: [
      {
        car: 'BMW 750',
        city: 'London',
        items: [
          {
            car: 'Toyota Corolla',
            city: 'Chicago',
            name: 'David',
            sex: 'Male',
            rowId: 2
          },
        ],
        name: 'Robert',
        sex: 'Male',
        rowId: 3
      }
    ],
    name: 'Sharon',
    sex: 'Female',
    rowId: 4
  }
]}
当没有内部对象时,我可以这样做迭代

rows.map((row, index) => ({ ...row, rowId: index }));
他还尝试了一些递归方法,但没有一种有效,实际上也没有在web上找到有用的东西

寻找一个天才开发谁可以指导我通过这一点。提前感谢。

您可以采用算法并向每个对象添加
id

const addId=(数据,id)=>{
const iter=array=>array.forEach(o=>{
if(o.items)iter(o.items);//首先搜索
o、 id=id++;//以后添加
});
iter(数据);
};
var rows=[{汽车:“奥迪A4”,城市:“拉斯维加斯”,项目:空,名称:“桑德拉”,性别:“女性”},{汽车:“雪佛兰克鲁兹”,城市:“东京”,项目:[{汽车:“宝马750”,城市:“伦敦”,项目:[汽车:“丰田花冠”,城市:“芝加哥”,名称:“大卫”,性别:“男性”},],名称:“罗伯特”,性别:“男性”},名称:“沙龙”,性别:“女性”};
添加(第1行);
console.log(行)

.as console wrapper{max height:100%!important;top:0;}
是否必须将编号从最内层转到最外层,或者可以是相反的或任意方向?我需要从最内层到最外层进行编号,就像示例对象中的一样。不幸的是,我们使用的定制数据网格要求。