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

React中如何将数组元素插入对象生成id不变、type更新的对象列表

代码调整方案

原有代码问题点

  • 函数内部重复声明value变量,覆盖了多选组件传入的选中值参数
  • 直接把选中值数组整体赋值给type字段,没有逐个遍历生成对应对象
  • rowIndex没有按数组下标动态更新
  • 变量作用域错误,newObj定义在函数内部,外部无法访问,push操作位置错误,还重复推入了原有对象
  • 原有基础对象中type: En未加引号,会被识别为未定义变量抛出语法错误

调整后可运行代码

handleOnRowChange = (selectedValues) => {
  // 基础对象可根据你的实际业务场景调整来源
  const baseObj = {rowIndex: 0, id: '8538', type: 'En'};
  // 遍历选中值数组,批量生成符合要求的对象
  const newList = selectedValues.map((type, index) => {
    return {
      ...baseObj,
      id: baseObj.id,
      type: type,
      // 按遍历顺序动态更新行下标
      rowIndex: index
    }
  });
  // 此处可对newList做后续业务处理,比如赋值给组件state
  console.log(newList);
}

// 组件onChange绑定逻辑无需调整,正常传入选中值即可
onChange={(e) =>
  this.handleOnRowChange(
    e.target.value
  )
}

输出验证

当传入选中值selectedValues = ['En', 'Ta', 'Fr']时,生成的newList完全匹配你需要的结构:

[
  {rowIndex: 0, id: '8538', type: 'En'},
  {rowIndex: 1, id: '8538', type: 'Ta'},
  {rowIndex: 2, id: '8538', type: 'Fr'}
]

内容的提问来源于stack exchange,提问作者Rashmi UI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:36:03