You need to enable JavaScript to run this app. JavaScript如何将含fieldName/fieldValue的对象数组转换为键值对对象
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何将含fieldName/fieldValue的对象数组转换为键值对对象

数组转指定键值对象的实现方法

核心逻辑:遍历原数组的每一项,将每项的fieldName值作为结果对象的键,对应fieldValue作为键值,依次组装成最终结构即可。

可直接复用的简洁实现

1. 工程通用高性能写法

基于数组原生reduce方法实现,遍历过程直接修改累加器对象,无额外重复的对象创建开销,即使原数组长度较大也能保持稳定性能:

const filter = [
  {
    fieldName: "userid",
    fieldValue: "12345"
  },
  {
    fieldName: "username",
    fieldValue: "myname"
  }
];

const filterOut = filter.reduce((acc, item) => {
  acc[item.fieldName] = item.fieldValue;
  return acc;
}, {});

执行完成后,filterOut的结构完全匹配预期的输出要求。

2. 极简短代码写法

如果处理的数组体量很小,可以结合对象解构和展开运算符,把逻辑压缩为一行形式:

const filterOut = filter.reduce(
  (acc, { fieldName: key, fieldValue: value }) => ({ ...acc, [key]: value }),
  {}
);

注意:这种写法每轮循环都会生成一个全新的对象,数据量较大时会产生不必要的性能消耗,更适合小数据集场景。

边界规则说明

如果原数组中存在重复的fieldName值,最终结果中后出现的项会覆盖前面同键的内容,这是这类结构转换的默认行为。如果需要对重复键做合并、保留原值等特殊处理,可以在赋值逻辑里增加对应的判断分支。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 08:24:05