【问题标题】:What is the most efficient way to iterate over javascript object?迭代javascript对象的最有效方法是什么?
【发布时间】: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


【解决方案1】:

您可能会发现此答案相关,但不确定性能问题。

Iterate through Nested JavaScript Objects

【讨论】:

  • 谢谢,但我的问题不是迭代是性能,我正在寻找最好的方法。
猜你喜欢
  • 2023-01-11
  • 1970-01-01
  • 2017-11-21
  • 2023-03-23
  • 2019-08-31
  • 2022-10-19
  • 1970-01-01
  • 2021-03-20
相关资源
最近更新 更多