【发布时间】:2016-04-15 15:56:32
【问题描述】:
我需要经常迭代内存中的 javascript 大对象以生成嵌套的 json 数据并插入到数据库中。对象结构是这样的:
var obj = {
"30": { "7": { "date1": { "key1": "value1", "key2": "value2"}}},
"29": { "8": { "date2": { "key1": "value1"}}},
"28": { "6": { "date3": { "key1": "value1", "key2": "value2", "key3": "value3"}}}
};
实际上我使用这种方法来迭代对象以更改嵌套级别
Object.keys(obj).map((number1) => {
const number1Obj = obj[number1];
Object.keys(number1Obj).map((number2) => {
const number2Obj = number1Obj[number2];
Object.keys(number2Obj).map((date) => {
const dateObj = number2Obj[date];
console.log(number1);
console.log(number2);
console.log(date);
Object.keys(dateObj).map((key) => {
console.log(` ${key}:${dateObj[key]}`);
});
});
});
});
是否有更有效的方法来迭代对象及其属性? running example
【问题讨论】:
-
这是您应用的性能瓶颈,还是过早的优化?最好在大部分情况下拥有清晰易懂的代码,然后将优化重点放在实际问题上。
-
感谢您的建议,目前这不是问题,但我喜欢从效率方面考虑我的代码。
-
如果您担心性能(但您为什么担心呢?),那么
for循环总是会更快。
标签: ecmascript-6 javascript-objects