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

JavaScript对象数组结构转换及现有实现代码优化方案咨询

数组转换优化方案

你当前的实现逻辑可行,但存在两个可优化点:

  • 遍历了两次原数组,数组规模较大时会产生不必要的性能开销
  • 代码中读取的tID、Name属性和你给出的源数组属性TaskID、TaskName不匹配,输出的AId大小写也和要求的AID不一致,属于容易触发的bug,同时原数组的AID是字符串格式,需要显式转为数字才能匹配目标结构要求。

最优实现方案(ES2019+)

使用flatMap可以一次遍历完成转换,无需额外拼接数组,代码更简洁性能也更好:

this.finalTaskArray = this.taskArray.flatMap(task => [
  {
    TaskID: 1,
    Value: task.TaskID,
    AID: Number(task.AID)
  },
  {
    TaskID: 2,
    Value: task.TaskName,
    AID: Number(task.AID)
  }
])

flatMap会自动把每个元素返回的子数组合并为最终的一维数组,全程仅遍历一次原数组。

兼容旧环境的实现

如果需要兼容不支持flatMap的旧运行环境,可以用reduce实现相同效果:

this.finalTaskArray = this.taskArray.reduce((result, task) => {
  result.push(
    { TaskID: 1, Value: task.TaskID, AID: Number(task.AID) },
    { TaskID: 2, Value: task.TaskName, AID: Number(task.AID) }
  )
  return result
}, [])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:36:05