Используя lodash или vanilla javascript, мне нужно преобразовать этот json:
{
"results" : [
{
"values" : [
{"label" : "FOO", "value" : "foovalue" },
{"label" : "BAR", "value" : "barvalue1" },
{"label" : "BAR", "value" : "barvalue2" }
]
},
{
"values" : [
{"label" : "FOO", "value" : "foovalue"},
{"label" : "BAR", "value" : "barvalue1"},
{"label" : "BAR", "value" : "barvalue2"}
]
}
]
}
в новый объект, где значения меток становятся ключом, а дубликаты превращаются в массив новых объектов, таких как:
[
[{"FOO" : "foovalue", "BAR" : ["barvalue1", "barvalue2"]}],
[{"FOO" : "foovalue", "BAR" : ["barvalue1", "barvalue2"]}]
]
Я пытался использовать _.map
, но он перезаписывает повторяющиеся значения, и мне нужно, чтобы они все были в массиве.
Вот самое близкое, что я получил:
var arr = _.map(results, function(o) {
return _.map(o.values, function(v) {
var obj = {};
obj[t.label] = t.value;
return obj;
});
});
, где arr
возвращает массив таких объектов (с перезаписываемыми объектами, а не объединенными в один объект) [{"FOO" : "foovalue"},{"BAR" : "barvalue2"}]
, и я застреваю, пытаясь превратить их в вышеуказанный массив.