2016-04-15 3 views
0

Мне нужно перебирать большой объект javascript в памяти так часто, чтобы генерировать вложенные данные json и вставлять в db. Структура объекта, как это:Каков наиболее эффективный способ перебора объекта javascript?

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

+1

Является ли это узкое место в вашем приложении, или это преждевременная оптимизация? Лучше иметь ясный понятный код по большей части и сосредоточить ваши оптимизации на реальных проблемах позже. – Krease

+0

Спасибо за совет, в настоящее время это не проблема, но мне нравится думать о моем кодексе с точки зрения эффективности. –

+0

Если вы беспокоитесь о производительности (но почему вы?), То цикл 'for' всегда будет быстрее. –

ответ

0

Возможно, этот ответ уместен, но не уверен в проблемах с производительностью.

Iterate through Nested JavaScript Objects

+0

Спасибо, но моя проблема не в том, что это производительность, я ищу лучший способ. –

Смежные вопросы