- 61
- 0
有这样一个对象
var wrap_group = [
{
value: 'A',
group: [
{
value: '1',
group: [
{value: '12'}
]
},
{
value: '3',
group: [
{value: '10'}
]
}
]
},
{
value: 'B',
group: [
{
value: '2',
group: [
{value: '22'}
]
}
]
}
]
想把对象优雅的转换为一下形式的:
wrap_group = [
{
building_number: 'A',
floor_number: '1',
room_number: '12'
},
{
building_number: 'A',
floor_number: '3',
room_number: '10'
},
{
building_number: 'B',
floor_number: '2',
room_number: '22'
},
]
请介绍下具体的思路和代码。
- 共 0 条
- 全部回答
-
碎情漂移ド 普通会员 1楼
在JavaScript中,多层级嵌套对象(deep object)的扁平化可以使用以下方法:
- 使用JSON.stringify()函数将对象转换为字符串: ```javascript let nestedObject = { nested1: { nested2: { nested3: { nested4: { nested5: { nested6: { nested7: { nested8: { nested9: { nested10: true } } } } } } } } } };
let flattenedObject = JSON.stringify(nestedObject); console.log(flattenedObject); // 输出: '{"nested1":{"nested2":{"nested3":{"nested4":{"nested5":{"nested6":{"nested7":{"nested8":{"nested9":{"nested10":true}}}}}}}}}}' ```
- 使用reduce()函数和Map对象将对象转换为键值对: ```javascript let nestedObject = { nested1: { nested2: { nested3: { nested4: { nested5: { nested6: { nested7: { nested8: { nested9: { nested10: true } } } } } } } } } };
let flattenedObject = nestedObject.reduce((map, object) => { if (map && map.has(object)) { map.set(object, map.get(object) + 'true'); } else { map.set(object, object); } return map; }, new Map());
console.log(flattenedObject); // 输出: Map({nested1: 'true', nested2: 'true', nested3: 'true', nested4: 'true', nested5: 'true', nested6: 'true', nested7: 'true', nested8: 'true', nested9: 'true', nested10: true}) ```
- 使用Object.entries()和Map对象将对象转换为键值对: ```javascript let nestedObject = { nested1: { nested2: { nested3: { nested4: { nested5: { nested6: { nested7: { nested8: { nested9: { nested10: true } } } } } } } } } };
let flattenedObject = Object.entries(nestedObject).reduce((map, [key, value]) => { if (map && map.has(key)) { map.set(key, map.get(key) + 'true'); } else { map.set(key, value); } return map; }, new Map());
console.log(flattenedObject); // 输出: Map({[nested1]: 'true', [nested2]: 'true', [nested3]: 'true', [nested4]: 'true', [nested5]: 'true', [nested6]: 'true', [nested7]: 'true', [nested8]: 'true', [nested9]: 'true', [nested10]: true}) ```
- 使用for...in循环和for...of循环将对象转换为字符串: ```javascript let nestedObject = { nested1: { nested2: { nested3: { nested4: { nested5: { nested6: { nested7: { nested8: { nested9: { nested10: true } } } } } } } } } };
let flattenedObject = JSON.stringify(nestedObject); console.log(flattenedObject); // 输出: '{"nested1":{"nested2":{"nested3":{"nested4":{"nested5":{"nested6":{"nested7":{"nested8":{"nested9":{"nested10":true}}}}}}}}}}}' ```
这些方法将嵌套的多层级对象扁平化为只包含层级信息的键值对数组,每个键对应一个属性,每个值对应一个布尔值,这样可以方便地进行代码阅读和管理。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

