Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Преобразование объекта (https://javascript.ru/forum/misc/83037-preobrazovanie-obekta.html)

dimquea 31.08.2021 16:24

Преобразование объекта
 
Всем привет. Есть такой объект на входе.
const obj = {
  101: {id: 101, section: 1, value: 876}, 
  102: {id: 102, section: 2, value: 394},
  103: {id: 103, section: 1, value: 754}
}

нужно его преобразовать на основаниии поля section, чтобы на выходе получить
sorted = {
  1: {
    101: {id: 101, section: 1, value: 876}, 
    103: {id: 103, section: 1, value: 754}
  },
  2: {
    102: {id: 102, section: 2, value: 394}
  }
}

После php кажется странным, что sorted[section][id] = item не работает

рони 31.08.2021 16:58

dimquea,
<pre>
    <script>
const obj = {
    101: {id: 101, section: 1, value: 876},
    102: {id: 102, section: 2, value: 394},
    103: {id: 103, section: 1, value: 754}
},
sorted = Object.values(obj).reduce((o, v) => {
const {id, section} = v;
if(!o[section]) o[section] = {}
o[section][id] = v;
return o
}, {});
document.write(JSON.stringify(sorted, "", 1))
    </script>
    </pre>


Часовой пояс GMT +3, время: 08:19.