2 ways to handle JSON structure

by Nivaldo

JavaScript

// Code goes here

var journals = [
    {
        "Journal": "Am Psychol",
        "January": "4046",
        "February": "4520",
        "March": "3372",
        "April": "5801",
        "May": "5044",
        "June": "3974",
        "July": "3241",
        "August": "3272",
        "September": "4839",
        "October": "5665"
    },
    {
        "Journal": "Behav Neurosci",
        "January": "7229",
        "February": "6373",
        "March": "4777",
        "April": "6212",
        "May": "6774",
        "June": "5491",
        "July": "4288",
        "August": "3666",
        "September": "4246",
        "October": "4968"
    }
];

var months = d3.keys(journals[0]).slice(1);
console.log(months);

// METHOD 1
var a = [];
for (var ct=0; ct<journals.length; ct++) {
    var b = d3.values(journals[ct]);
    for (var ct2=0; ct2<b.length; ct2++) {
        if (!isNaN(b[ct2])) {
            a.push(b[ct2]);
        }
    }
}

console.log(d3.max(a));

// METHOD 2 - more elegant
var a2 = [];
  journals.forEach(function(journal) {
    months.forEach(function(month) {
      a2.push(+journal[month]);
    });
  });

console.log(d3.max(a2));