在一个数组内部的另一个数组中添加递增计数器。

3

我有一个数组如下所示


    data = [
    {
     sNo:1,
     month:[
     {
      id:1,
      value:0
     },
     {
      id:5,
      value:10
     }]
    },
     {
     sNo:2,
     month:[
     {
      id:6,
      value:10
     },
     {
      id:9,
      value:20
     }]
     }
    ]

我想在月份数组中添加一个递增的计数器,使计数保持增加直到最后一个元素。因此,我的最终数组看起来像这样

    data = [
    {
     sNo:1,
     month:[
     {
      id:1,
      value:0
      count:1
     },
     {
      id:5,
      value:10,
      count:2
     }]
    },
     {
     sNo:2,
     month:[
     {
      id:6,
      value:10,
      count:3
     },
     {
      id:9,
      value:20,
      count:4
     }]
     }
    ]

这里计数器在不考虑元素的情况下增加了。我该怎么做?

2个回答

2
你可以:
  • 在数组处理之外定义计数器
  • 使用array.map在每个月份上添加新列

const data = [{
    sNo: 1,
    month: [{
        id: 1,
        value: 0
      },
      {
        id: 5,
        value: 10
      }
    ]
  },
  {
    sNo: 2,
    month: [{
        id: 6,
        value: 10
      },
      {
        id: 9,
        value: 20
      }
    ]
  }
];

let count = 0;
const result = data.map(one => ({ ...one,
  month: one.month.map(month => ({
    ...month,
    count: ++count
  }))
}));

console.log(result);


0
你可以使用一对 .forEach 来实现这个功能。试试这个:

let data = [{sNo:1, month:[{id:1, value:0 }, {id:5, value:10 }] }, {sNo:2, month:[{id:6, value:10 }, {id:9, value:20 }] } ];

let index = 1;
data.forEach(obj => {
    obj.month.forEach(m => m.count = index++);
});

console.log(data);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接