Groupement / de comptage en javascript à l'aide de underscore.js
Je suis nouveau sur le javascript (et de Débordement de Pile) et j'ai rencontré un problème je n'arrive pas à résoudre. Je suis en train de générer un simple graphique montre le nombre de Projets pour chaque valeur de la Technologie dans mes données. C'est le genre de données que je suis en train de travailler avec:
- [Projet1, Java]
- [Project2, Excel]
- [Project3, SAS]
- [Projet4, Java]
La tarte ratio dans l'exemple ci-dessus, serait de 2:1:1.
La première partie de mon code charge les données et le pousse à un tableau, "techArray", qui contient [projet, tech]. Cette partie fonctionne ok - j'ai vérifié dans la version simplifiée du code.
Je veux la groupe le tableau "techArray" et de compter les occurrences de chaque technologie. Pour ce faire, je suis en utilisant le trait de Soulignement de la bibliothèque, comme suit:
var chartData = [];
var techData = _.groupBy(techArray, 'tech');
_.each(techData, function(row) {
var techCount = row.length;
chartData = push( {
name: row[0].tech,
y: techCount
});
});
Le script rend les chartData tableau à l'aide de highcharts. Encore une fois, j'ai vérifié que cette section fonctionne à l'aide d'une procédure simplifiée (décortiqué) version.
Il doit y avoir un problème avec le groupement d'/comptage de l'étape décrite ci-dessus, parce que je vois pas de sortie, mais j'ai simplement ne peut pas trouver où. Je suis en fondant ma solution sur les points suivants travaillé exemple: Travaillé par exemple.
Si n'importe qui peut trouver l'erreur dans ce que j'ai écrit, ou de proposer une autre façon de grouper le tableau, je lui en serais très reconnaissant. Cela semble comme il devrait être une tâche plus simple qu'il s'avère être.
OriginalL'auteur jdmarlon | 2014-08-04
Vous devez vous connecter pour publier un commentaire.
countBy pourrait être utilisé à la place de groupBy:
Cela retourne un objet avec la technologie en tant que propriétés et leur valeur en tant que le comte:
Pour obtenir les données dans le formulaire pour highcharts utilisation de la carte à la place de chacun:
Je voudrais poser une nouvelle question, si j'étais vous, de sorte que vous pouvez obtenir le bénéfice de beaucoup de gens différents, de répondre à notre question.
OriginalL'auteur Gruff Bunny
Cela devrait fonctionner
_.groupBy
doit soit obtenir un nom de propriété, ou une fonction qui renvoie la valeur d'être groupés. Il n'y a pas detech
propriété d'un tableau, donc tu ne peux pas le groupe. Mais, comme nostechArray
est un tableau de n-uplets, on peut passer une fonction_.groupBy
qui retourne la valeur que nous voulons grouper, à savoir le deuxième élément dans chaque tuple.chartData
ressemble maintenant à ceci:OriginalL'auteur Jonathan Lerner