You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遍历对象生成接口提交JSON 解决forEach is not a function报错

解决方案

tagArray.forEach is not a function报错的核心原因是this.formGroup.value为对象类型,只有数组原型上挂载了forEach方法,对象无法直接调用该方法。

你注释的Object.entries遍历思路是可行的,只需要补充一步过滤逻辑:从表单对象中筛选出选中状态为真的标签ID,先转为标签数组再做后续拼接即可,完整修改代码如下:

const idArray = this.selectedReporters; // 存储上报人ID
const formTagObj = this.formGroup.value; // 存储表单标签选中状态,结构一般为 {标签ID: 是否选中布尔值}

// 从表单对象中提取选中的标签ID,生成标签数组
const tagArray = Object.entries(formTagObj)
  .filter(([tagId, isChecked]) => isChecked) // 只保留选中的标签
  .map(([tagId]) => tagId)

const tagArr = [];
idArray.forEach((el) => {
  tagArray.forEach((ll) => {
    tagArr.push({
        reporter: el,
        tag: ll
    })
  })
})
const reporterTags = {
    reporter_tags: tagArr
}
console.log(reporterTags);

如果你的this.formGroup.value存储的结构不是{标签ID: 选中状态},而是其他对象结构,只需要调整上面tagArray的转换逻辑,把所有要提交的标签ID提取为一维数组即可,后面的笛卡尔积拼接逻辑不需要修改。

内容的提问来源于stack exchange,提问作者Okello Marvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:36:03