Test for Topic Pubs Aggregation
by Nivaldo
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js"></script>
<!--
[
{
"articles": [
[2004,1],
[2005,1]
],
"total": 2,
"name": "Annals of Behavioral Medicine"
},
{
"articles": [
[2006,1]
],
"total": 1,
"name": "Journal of Clinical Psychopharmacology"
}
]
-->
JavaScript
$.post("http://mllab1.apa.org:8020/graphs/semantics-app/get-topic-pubs.xqy").done(function(data) {
//console.log(JSON.stringify(data));
/*
var data = [
{"journal_title":"Annals of Behavioral Medicine","year":"2004"},
{"journal_title":"Annals of Behavioral Medicine","year":"2005"},
{"journal_title":"Annals of Behavioral Medicine","year":"2005"},
{"journal_title":"Journal of Clinical Psychopharmacology","year":"2005"}
] ;
*/
var groups = _(data).groupBy('journal_title');
var out = _(groups).map(function(g, key) {
var years = _(g).groupBy('year');
var hack = [["1500",6]];
var aggYears = _(years).map(function(yG,yKey) {
return [yKey,yG.length];
});
return {
name: key,
total: g.length,
articles: hack.concat(aggYears)
};
});
out = _(out).sortBy('articles');
out = _(out).sortBy('total').reverse(); // sort by 'name' for alphabetical; sort by 'total' for frequency, but must reverse array!
//data = data.slice(0,9); // top is second param - 1, so data = data.slice(0,top -1)
console.log(JSON.stringify(out));
});