Ho un array di pesante come questo:Gruppo per array e aggiungere il campo e la matrice sub in serie principale
[
{Id: 1, Name: 'Red', optionName: 'Color'},
{Id: 2, Name: 'Yellow', optionName: 'Color'},
{Id: 3, Name: 'Blue', optionName: 'Color'},
{Id: 4, Name: 'Green', optionName: 'Color'},
{Id: 7, Name: 'Black', optionName: 'Color'},
{Id: 8, Name: 'S', optionName: 'Size'},
{Id: 11, Name: 'M', optionName: 'Size'},
{Id: 12, Name: 'L', optionName: 'Size'},
{Id: 13, Name: 'XL', optionName: 'Size'},
{Id: 14, Name: 'XXL', optionName: 'Size'}
]
Cosa devo fare è quello di raggrupparli per optionName
e hanno due righe nella matrice principale come this:
[
{
Name: 'Color',
Data:[{Id: 1, Name: 'Red'},
{Id: 2, Name: 'Yellow'},
{Id: 3, Name: 'Blue'},
{Id: 4, Name: 'Green'},
{Id: 7, Name: 'Black'}]
}, {
Name: 'Size',
Data:[{Id: 8, Name: 'S'},
{Id: 11, Name: 'M'},
{Id: 12, Name: 'L'},
{Id: 13, Name: 'XL'},
{Id: 14, Name: 'XXL'}]
}
]
Come si fa in javascript?
buona sintesi Rogier, solo una correzione difficile: lei ha citato le soluzioni disponibile in ES6 +, ma array prototype fil ter, map e reduce è disponibile da ES5.1 (2011) e supportato da IE9 +, FF3 + e tutte le versioni di Chrome. –
@AhmetCetin Non sono del tutto sicuro se capisco cosa intendi, nel mio esempio fornisco la sintassi ES5 (.1) aswel come la stessa funzione scritta in ES6 +. Forse ho bisogno di chiarire le prime funzioni per essere ES5 (.1)? –
hai ragione, mi sono perso, hai usato la notazione di freccia grossa in ES6. Sarebbe meglio per la comprensione credo che se si menziona l'altra sintassi è valida per ES5.1. Quando ho letto la prima volta, pensavo che intendessi tutte le soluzioni valide per ES6. –