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

AngularJS中如何将指定JSON对象转换为以Id值为键、name值为值的结构?

解决AngularJS中对象键值转换的问题

嘿,我来帮你搞定这个对象转换的需求!你的目标是把object1转换成以Id值为键、name值为值的新对象,其实不需要复杂的循环,简单几步就能实现。

先说说你原来代码的问题

你写的循环里有两个小问题:

  • 错误引用了eachPeriod变量,应该是object1才对
  • 只是打印了每个键对应的值,没有构建新对象的核心逻辑

直接的解决方案(单个对象)

因为你处理的是单个对象,完全不需要遍历,直接提取字段赋值就行:

// 你的原始对象
const object1 = { name: 'xxx', Id: 212 };
// 创建空的新对象
const transformedObject = {};
// 把Id作为键,name作为值赋值
transformedObject[object1.Id] = object1.name;

console.log(transformedObject); // 输出: { 212: 'xxx' }

拓展:如果处理多个同结构对象的数组

要是以后需要处理一组这样的对象,用Array.reduce()会更高效:

const objectsList = [
  { name: 'xxx', Id: 212 },
  { name: 'yyy', Id: 313 },
  { name: 'zzz', Id: 414 }
];

const result = objectsList.reduce((acc, current) => {
  acc[current.Id] = current.name;
  return acc;
}, {});

console.log(result); // 输出: { 212: 'xxx', 313: 'yyy', 414: 'zzz' }

小提醒:为什么用方括号而不是点语法?

这里必须用transformedObject[object1.Id]而不是点语法,因为动态键名只能用方括号语法,点语法只适用于已知的固定键名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:42:48