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
相关产品推荐
相关产品推荐

