Я пытаюсь использовать подчеркивание, чтобы сгруппировать мой массив объектов в меньшем списке:Group клавишами JavaScript Object + массив
var list = [
{ Region: 'A', Vals: [ 7, 'H' ] },
{ Region: 'B', Vals: [ 40, 'H' ] },
{ Region: 'B', Vals: [ 24, 'VH' ] },
{ Region: 'C', Vals: [ 4, 'VH' ] },
{ Region: 'A',Vals: [ 40, 'VH' ] }
];
var groups = _.groupBy(list, function(value){
return value.Region;
});
var grouped = _.map(groups, function(group){
return {
Region: group[0].Region,
Vals: group[0].Vals
}
});
который получит несколько близко, но не хватает некоторых из Vals. Я хочу, чтобы массивы «валсов» были объединены на основе ключей.
var list = [
{ Region: 'A', Vals: [ 7, 'H', 40, 'VH' ] },
{ Region: 'B', Vals: [ 40, 'H', 24, 'VH' ] },
{ Region: 'B', Vals: [ 24, 'VH' ] },
{ Region: 'C', Vals: [ 4, 'VH' ] }
];
http://jsfiddle.net/77gL11c9/1/
Вы можете получить все 'Vals' заменой' группы [0] .Vals' с '_.flatten (_ .pluck (группа, 'Vals')) ' –
' var res = list.reduce (function (arr, v) { if (! (v.Region in ref)) { ref [v.Region] = arr. длина: arr.push ({Region: v.Region, Vals: v.Vals}); } else { [] .push.apply (arr [ref [v.Region]]. Vals, v.Vals) ; } return arr; }, []); ' –