我有一個公司和國家的json文件。創建對象的最正確方法是什麼?循環遍歷所有國家,我必須計算有多少公司與某個特定國家相關,以便獲得結果對象,大致採用以下格式:在循環中創建對象
country = {
USA: 13,
Germany: 11,
Belgia: 3
}
我有一個公司和國家的json文件。創建對象的最正確方法是什麼?循環遍歷所有國家,我必須計算有多少公司與某個特定國家相關,以便獲得結果對象,大致採用以下格式:在循環中創建對象
country = {
USA: 13,
Germany: 11,
Belgia: 3
}
你可以嘗試這樣的事情:(使用你在你的問題有編輯前的對象數據。)
var jsondata = {"list":[{"name":"Photolist","location":{"name":"Poland","code":"PL"},"partners":[{"name":"Oloo","value":30},{"name":"Flashset","value":87}]},{"name":"Mymm","location":{"name":"Ukraine","code":"UA"},"partners":[{"name":"Photojam","value":57},{"name":"Divavu","value":82},{"name":"Quinu","value":18}]},{"name":"Yata","location":{"name":"United States","code":"US"},"partners":[{"name":"Meetz","value":72}]},{"name":"Brainbox","location":{"name":"Norway","code":"NO"},"partners":[{"name":"Divavu","value":42}]},{"name":"Flashpoint","location":{"name":"Sweden","code":"SE"},"partners":[{"name":"Babbleopia","value":53},{"name":"Buzzdog","value":70},{"name":"Voolia","value":20}]},{"name":"Photospace","location":{"name":"Poland","code":"PL"},"partners":[{"name":"Yakitri","value":81},{"name":"Divavu","value":85},{"name":"Skimia","value":12},{"name":"Meeveo","value":27}]},{"name":"Realfire","location":{"name":"Poland","code":"PL"},"partners":[{"name":"Topicshots","value":81}]}]};
var countries = {};
jsondata.list.forEach(function (elem) {
if (elem.location.name in countries) {
countries[elem.location.name]++;
} else {
countries[elem.location.name] = 1;
}
});
console.log(countries);
你有使用'map'而不是'reduce'的原因嗎?我覺得這個問題更適合「減少」。 – christo8989
@ christo8989那麼最初的想法是我將值映射到數組中的新值,但想到它,它並沒有做更多的事情,只是循環遍歷每個元素......我只是將它更改爲的forEach。 – Ivar
你會想JSON.parse json並使用Array.reduce來獲取你的對象。
var companies = JSON.parse(json).list; //<-- unsafe for production
var countries = companies.reduce(function(countries, company) {
var country = company.location.name;
if (typeof countries[country] === 'undefined' || countries[country] === null) {
countries[country] = 1;
} else {
countries[country]++;
}
return countries;
}, {});
'變種國家= {};',然後使用'國家[國家名稱] =(國家[國家名稱] || 0)+ 1添加國家循環內的對象;' – 4castle
可以添加例如JSON ?我們理解結構的最小量。是不是像:'[{...},...]'? – christo8989
json文件,你可以在這裏找到http://codeit.pro/frontTestTask/company/getList –