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

如何将JS嵌套键值对数组转换为指定格式的对象数组?

实现格式转换的方案

原有代码错误原因

  • 没有提前为formated的每个子元素初始化空对象,直接访问formated[count]会得到undefined,操作undefined会抛出异常
  • push是数组专属方法,不能用来给对象添加属性,给对象加键值对直接用对象[键] = 值的语法即可

可直接运行的实现代码

方案1:基于原有循环逻辑修改

let formated = []
for(let item of this.pops){
  // 先初始化当前子项为空对象
  let curObj = {}
  for(let prop of item){
    // 给对象添加对应键值对
    curObj[prop.key] = prop.value
  }
  // 组装完成的对象推入结果数组
  formated.push(curObj)
}

方案2:更简洁的高阶函数写法

用map和Object.fromEntries组合实现,代码更精简:

const formated = pops.map(subArr => 
  Object.fromEntries(subArr.map(item => [item.key, item.value]))
)

Object.fromEntries可以直接把[[key1, value1], [key2, value2]]格式的二维数组转换为对应对象,配合外层遍历子数组的map方法即可直接得到目标格式结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:39:02