javascript - 在循环中创建对象

标签 javascript

我有一个包含公司和国家/地区的 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);

关于javascript - 在循环中创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46015016/

相关文章:

javascript - 从原型(prototype)访问对象属性

javascript - 如何从 Javascript 中的电子邮件地址获取域?

javascript - 多字节字符占用的字符数在 JavaScript 和 MySQL 中是不同的

javascript - 如何在 url 中制作一盒 nxn?

javascript - 将日期格式转换为字符串 Javascript

javascript - 选择 tbody 下的所有复选框不起作用

Javascript 创建具有 new 和不具有 new + 继承的对象

javascript - AWS - 如何使用 aws-sdk 进行监控?

javascript - React 有相当于 Vue.set() 的函数吗?

javascript - 如果选择单选按钮,则需要填写多个文本字段以验证表单