Usando jQuery, ¿cómo puedo iterar sobre un objeto y obtener los valores únicos de una clave con un recuento de cada valor?JavaScript: ¿Obtiene valores únicos y sus recuentos de una matriz de objetos?
Por ejemplo, para esta matriz:
var electrons = [
{ name: 'Electron1', distance: 1 },
{ name: 'Electron2', distance: 1 },
{ name: 'Electron3', distance: 2 },
{ name: 'Electron4', distance: 2 },
{ name: 'Electron5', distance: 2 },
{ name: 'Electron6', distance: 2 },
{ name: 'Electron7', distance: 2 },
{ name: 'Electron8', distance: 2 },
{ name: 'Electron9', distance: 2 },
{ name: 'Electron10', distance: 2 },
{ name: 'Electron11', distance: 3 },
];
me gustaría volver el siguiente:
var distance_counts = {1: 2, 2: 8, 3: 1};
Tengo esto, que funciona, pero es un poco torpe:
var radius_counts = {};
for (var i = 0; i < electrons.length; i++) {
if (electrons[i].distance in radius_counts) {
radius_counts[electrons[i].distance] += 1;
} else {
radius_counts[electrons[i].distance] = 1;
}
}
probar este http://stackoverflow.com/questions/1960473/unique-values-in-an-array –
@Artem - Eso es totalmente una pregunta diferente sobre cómo obtener una matriz de valores únicos – Richard
¿La matriz inicial siempre se ordenará tal como está? – sp00m