Cómo colocar elementos en matrices agrupadas donde se agrupan por una clave en particular
Soy bastante nuevo en Objetos en JS, por lo que necesitaré ayuda. Tengo la siguiente matriz:
var persons = [
{ fname : 'Steven', lname : 'Jameson', age : 20 },
{ fname : 'George', lname : 'Thrump', age : 40 },
{ fname : 'Peter', lname : 'Jacobs', age : 60 },
{ fname : 'Peter', lname : 'Thrump', age : 20 },
{ fname : 'Steven', lname : 'Henderson', age : 40 },
{ fname : 'John', lname : 'Jacobs', age : 30 },
{ fname : 'Steven', lname : 'Thrump', age : 50 },
{ fname : 'George', lname : 'Peterson', age : 40 },
{ fname : 'Peter', lname : 'Jameson', age : 60 }
];
Necesito ordenar la información por una propiedad dada. Lo he intentado confunction( array, 'property' )
. En mi caso seráfunction(persons, 'fname')
. Tengo que conseguir un Objeto con las teclas delnombres diferentes y que las claves para almacenar la información de todas las personas con ese nombre. Por ejemplo:
Object {
Steven : everyone with first name Steven,
George : everyone with first name George,
Peter : everyone with first name Peter,
John : everyone with first name John
}
Logro esto:
function group( array, property ) {
var object = {};
for (var i = 0; i < persons.length; i++) {
object[persons[i][property]] = [];
object[persons[i][property]].push(persons[i])
};
};
Creando el objeto con los diferentes nombres como claves, y dándoles Array como valor. ¿Y luego estoy atascado y no sé qué hacer a continuación? ¿Alguien puede ayudar y si tiene pocos minutos para explicar un poco?
Gracias por adelantado.