【发布时间】:2016-10-08 23:34:34
【问题描述】:
应该有一个对象的数组,比如
[
{
"key_set1": {
int_val: 3,
arr_val: [
1,
3,
4
]
}
},
{
"key_set2": {
string_val: "foo"
}
}
]
我想将内部对象的键展平到一个新的根对象以在最后得到
{
"key_set1": {
"int_val": 3,
"arr_val": [
1,
3,
4
]
},
"key_set2": {
"string_val": "foo"
}
}
假设
- 这个嵌套结构可以有 N 层,N > 10
- 结构是有效的 json 对象而不是 javascript 对象,即它具有 atomit/non atomic 类型,而不是
function对象类型; - 整个输入的 json 文件可以是数百 KBytes;
- 工作必须在 JavaScript V8 / ECMAScript6 中完成;
- 处理时间必须是毫秒级
- 此映射的一种变体,需要解析输入的 json 对象并修改值(如使用
map数组方法)。
我希望使用内置方法(如 forEach 和/或快速迭代器 for、while 等)获得最优化的解决方案,以实现最佳/最差情况。
【问题讨论】:
-
@p.s.w.g wops 忘记了问题,刚刚添加。我想把它优化到最好。
-
@FelixKling 请澄清:)
-
我投票决定将此问题作为离题结束,因为它似乎要求进行代码审查。 codereview.stackexchange.com 可能是提出这个问题的更好地方(请参阅他们的指南帮助)。
-
Stack Overflow 主要用于解决编程问题。一般的经验法则是,如果您的代码按原样正常运行,并且问题只是寻求帮助以某种方式优化代码(使其更快、更易读等),那么它可能更适合代码审查。跨度>
标签: javascript json flatten