Предполагая, что это на самом деле ваша структура данных:
[
{
nome: "Dizzasco",
codice: "013087",
zona: {codice: "1", nome: "Nord-ovest"},
regione: {codice: "03", nome: "Lombardia"},
provincia: {codice: "013", nome: "Como"},
sigla: "CO",
codiceCatastale: "D310",
cap: ["22020"],
popolazione: 565,
},
....
]
Вы почти у цели. Вам нужно накапливать число вместо того, чтобы хранить каждое значение в массиве, как вы делаете сейчас. Смотри:
var data=[
{
nome: "Dizzasco",
codice: "013087",
zona: {codice: "1", nome: "Nord-ovest"},
regione: {codice: "03", nome: "Lombardia"},
provincia: {codice: "013", nome: "Como"},
sigla: "CO",
codiceCatastale: "D310",
cap: ["22020"],
popolazione: 565,
},
{
nome: "Dobbiaco",
codice: "021028",
zona: {codice: "2", nome: "Nord-est"},
regione: {codice: "04", nome: "Trentino-Alto Adige/Südtirol"},
provincia: {codice: "021", nome: "Bolzano/Bozen"},
sigla: "BZ",
codiceCatastale: "D311",
cap: ["39034"],
popolazione: 3314
}
];
var populationByRegion={},
totalPopulation=0;
for(var d = 0; d < data.length; ++d) {
var item=data[d],
thisDataRegioneNome=item.regione.nome,
population=item.popolazione;
//If this is the first time we find this region, initialize the accumulator
if(!populationByRegion.hasOwnProperty(thisDataRegioneNome)) populationByRegion[thisDataRegioneNome]=0;
//Then just sum the population
populationByRegion[thisDataRegioneNome]+=population;
//You can also count the total among all the regions
totalPopulation+=population;
}
console.log("Population by region",populationByRegion);
console.log("Total",totalPopulation);