为了账号安全,请及时绑定邮箱和手机立即绑定

脚本 / 设置从 0 开始的增量索引

脚本 / 设置从 0 开始的增量索引

牧羊人nacy 2022-09-29 15:40:32
我有一个问题,设置总是唯一的索引,递增一个。我有一个这样的数组。const parentArr = [  {    name: 'first parent array',    childArray: [      {        name: '1 / first child'      },      {        name: '1 / second child'      }    ]  },    {    name: 'second parent array',    childArray: [      {        name: '2 / first child array'      },      {        name: '2 / second child array'      }    ]  }]我期待这样的结果:const expectedResult = [  {    name: 'first parrent array',    additionalInfo: [      {        index: 0,        name: '1 - first child'      },      {        index: 1,        name: '1 - second child'      }    ]  },   {    name: 'second parrent array',    additionalInfo: [      {        index: 2,        name: '2 -first child array'      },      {        index: 3,        name: '2- second child array'      }    ]  }]我想在附加信息中为0中的每个项目设置索引。我试过这样,但我得到了错误的索引号  return parentArr.map((parent) => {    return {      name: parent.name,      additionalData: parent.childArray.map((child, index) => ({        name: child.name        index: index   // I'M STUCK ON THIS LINE      })),    };  });
查看完整描述

2 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

您必须独立于循环管理子级的索引。那这个呢?


let i = 0;


return parentArr.map((parent) => {

  return {

    name: parent.name,

    additionalData: parent.childArray.map((child) => ({

      name: child.name

      index: i++

    })),

  };

});


查看完整回答
反对 回复 2022-09-29
?
互换的青春

TA贡献1797条经验 获得超6个赞

索引计数应位于地图外部,因为这将在每次迭代时重置它。


您可以将此行为抽象为可重用的方法,如下所示。


const parentArr = [

  {

    name: 'first parent array',

    childArray: [

      {

        name: '1 / first child'

      },

      {

        name: '1 / second child'

      }

    ]

  },

    {

    name: 'second parent array',

    childArray: [

      {

        name: '2 / first child array'

      },

      {

        name: '2 / second child array'

      }

    ]

  }

];



const transformArray = root => {

  let i = 0;

  return root.map(({ name, childArray }) => ({

    name,

    additionalData: childArray.map(({ name }) => ({

      index: i++,

      name

    }))

  }));

};


console.log(transformArray(parentArr));


查看完整回答
反对 回复 2022-09-29
  • 2 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号