Я пытаюсь сгруппировать объект в более организованную структуру на основе подстроки ключа объекта.
Ниже приведен пример объекта, который я передаю:
var data = {
"summ_example_1": {
"value": 40464.284237
},
"summ_example_number_2": {
"value": 39260.605837
},
"in_process_example_1": {
"count": 10,
"value": 10
},
"in_process_example_2": {
"count": 12,
"value": 12.5
},
"in_process_example_3": {
"count": 0,
"value": 0
},
"awaiting_example_1": {
"count": 17,
},
"awaiting_example_2": {
"count": 51,
}
}
Вывод, который я хочу получить:
{ summ:
["summ_example_1": {"value": 40464.284237},
"summ_example_number_2": {"value": 39260.605837}],
in:
["in_process_example_1": {"count": 10, "value": 10},
"in_process_example_2": {"count": 12, "value": 12.5},
"in_process_example_3": {"count": 0, "value": 0}],
awaiting:
["awaiting_example_1": {"count": 17},
"awaiting_example_2": {"count": 51"}]}
Я попытался сгруппировать объект с помощью groupBy как в Lodash, так и в Underscore.js без какой-либо удачи.
В нижнем подчеркивании я могу использовать следующеекод (Обратите внимание, что это не работает в Lodash, так как я не могу получить значение ключа объекта:
var grouped = _.groupBy(data, function(val, key){
return key.substr(0, key.indexOf('_'));
});
, который выдает следующий вывод:
{ summ:
[{"value": 40464.284237},
{"value": 39260.605837}],
in:
[{"count": 10, "value": 10},
{"count": 12, "value": 12.5},
{"count": 0, "value": 0}],
awaiting:
[{"count": 17},
{"count": 51"}]}
Однако яхочу сохранить ключи объекта внутри моего вывода, и, как вы можете видеть, он удаляет их.
Возможно ли то, что я делаю?
Извинения, если это не имеет смысла или уже былоспросил, но я искал решение больше времени, чем мне хотелось бы, и у меня заканчиваются идеи.
Спасибо, что нашли время, чтобы прочитать это, и, пожалуйста, не стесняйтесь задавать любые вопросы.stions!