JavaScript中如何使用forEach遍历数组生成指定结构的对象数组
问题核心错误点
- 初始定义的
returnData为对象类型,目标结构外层为数组类型,类型不匹配 - 遍历数组时使用
Object.entries转成键值对后给对象的索引键赋值,最终得到的是数字为键的对象而非数组 - 给每个元素赋值时额外包裹了一层数组,层级和目标结构不符
- 原代码未添加目标结构要求的
md、drillup、drilldown等字段
正确实现代码
// 初始化返回值为数组 const returnData = [] // 注意你的原代码里获取数据的变量是dataFirstSecond,遍历用的是dataRegularSecondary,先确认变量对应关系 const dataFirstSecond = await informationModel.getdata() // 直接遍历源数据数组即可,不需要转Object.entries dataFirstSecond.forEach(item => { returnData.push({ name: item.name, data: [ { y: item.y, total: item.total_ada, // 以下字段根据你的业务实际取值调整,示例是你给出的目标结构里的固定值 md: "1", name: "National", drillup: item.name === "First Data" ? "level0" : "National", drilldown: "3", next: "level2" } ] }) })
调整说明
如果md、drillup、drilldown等字段的值需要从源数据动态获取,直接把固定值替换为对应的item.xxx字段即可。
内容的提问来源于stack exchange,提问作者riyan193
相关产品推荐
相关产品推荐

