Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to get unique list of years from json data?

Tags:

javascript

I have following json data and want to get an array of only financial_year. It has to be only unique years.

var data = [{"financial_year": 2017, "revenue": 2000, "costs": 1000}, {"financial_year": 2017, "revenue": 3000, "costs": 2000}, {"financial_year": 2016, "revenue": 1000, "costs": 500},{"financial_year": 2016, "revenue": 2000, "costs": 1000}, {"financial_year": 2015, "revenue": 5000, "costs": 3000}, {"financial_year": 2015, "revenue": 2000, "costs": 1000}]

I want to get an array with a list of only years. My expected output is:

[2017, 2016, 2015]

I tried to fo following:

var years = []
data.forEach((val, index) => {
    years.push(val.financial_year)
});

var lis_of_years = Array.from(new Set(years))

But for some weird reason, I'm getting two arrays when I console.log(lis_of_years). Could you please check what am I doing wrong here?

like image 833
Hannan Avatar asked Dec 20 '25 17:12

Hannan


1 Answers

You could use ES6 Set class to get the unique values.

[... new Set(data.map(a=>a.financial_year))]

var data = [{"financial_year": 2017, "revenue": 2000, "costs": 1000}, {"financial_year": 2017, "revenue": 3000, "costs": 2000}, {"financial_year": 2016, "revenue": 1000, "costs": 500},{"financial_year": 2016, "revenue": 2000, "costs": 1000}, {"financial_year": 2015, "revenue": 5000, "costs": 3000}, {"financial_year": 2015, "revenue": 2000, "costs": 1000}]

console.log([... new Set(data.map(a=>a.financial_year))])
like image 100
Luis felipe De jesus Munoz Avatar answered Dec 23 '25 05:12

Luis felipe De jesus Munoz