如何为嵌套数组中的month子数组添加全局递增count字段?
实现全局递增count字段的方案
需求说明
给data数组中每个元素的month子数组内的所有对象,添加一个全局连续递增的count字段,count从1开始依次累加,不受外层数组元素的划分影响。
代码实现(直接修改原数组)
// 初始化全局计数器,从1开始 let count = 1; // 遍历外层data数组 data.forEach(item => { // 遍历当前元素的month子数组 item.month.forEach(monthItem => { // 为每个month元素添加count字段,随后计数器自增 monthItem.count = count++; }); });
代码实现(生成新数组,保留原数组)
如果需要避免修改原数组结构,可通过解构生成新数组:
let count = 1; const newData = data.map(item => ({ ...item, month: item.month.map(monthItem => ({ ...monthItem, count: count++ })) }));
逻辑说明
- 用一个外部的
count变量追踪全局递增数值,遍历全程不会重置计数器 - 先遍历外层
data元素,再逐个遍历每个元素下的month子数组,为子元素赋值当前count后立即自增,确保所有month元素的count值连续递增
内容的提问来源于stack exchange,提问作者Rosy
相关产品推荐
相关产品推荐

