javascript - 如何获取对象数组中某些特定属性的重复值的计数并将其存储在对象中

标签 javascript arrays object extjs

假设我有一个 Object 数组。

代码:

var arrayMap = [{continent: "Asia", Country: "China"},
{continent:"NAmerica", Country: "USA"},
{continent:"Asia", Country:"India"},
{continent:"Australia", Country:"Australia"},
{continent:"Asia", Country:"Japan"},
{continent:"Europe", Country:"UK"},
{continent:"SAmerica", Country:"Brazil"},
{continent:"Europe", Country:"Germany"},
{continent:"Asia", Country:"Rassia"},
{continent:"NAmerica", Country:"Canada"}]

现在我在 Obj 的 arrayMap 中有两个属性 Continental 和 Country。我想要统计各大洲的国家数量。 像:

 Obj{Asia: 4, NAmerica:2, Australia:1, Europe:2, SAmerica:1} 

任何人都可以帮助我如何得到这个。

最佳答案

您可以使用reduce方法来获取reduce方法的count.Doc。 Reduce

reduce() 方法用于将数组元素减少为单个值。

代码示例:

    var arrayMap = [{continent: "Asia", Country: "China"},{continent:"NAmerica", Country: "USA"},{continent:"Asia", Country:"India"},{continent:"Australia", Country:"Australia"},{continent:"Asia", Country:"Japan"},{continent:"Europe", Country:"UK"},{continent:"SAmerica", Country:"Brazil"},{continent:"Europe", Country:"Germany"},{continent:"Asia", Country:"Rassia"},{continent:"NAmerica", Country:"Canada"}];   
    var answer = arrayMap.reduce(function(continent,Country){
        return continent[Country.continent] = (continent[Country.continent] || 0) + 1, continent }, {});
    console.log(answer);

关于javascript - 如何获取对象数组中某些特定属性的重复值的计数并将其存储在对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43119111/

相关文章:

javascript - Object.freeze() 卡住原型(prototype)实例?

c - C 中的字符串搜索

javascript - parsley.js 错误的数据类型

javascript - jQuery cookie 根本不起作用

javascript - 使用 JavaScript 在 div 上随机分布 HTML 元素

javascript - 查找数组的最大值

java - 如何用 3 的幂对数组内容求和

java - 创建一个单独的对象并从 Java 中的对象引用编辑它

javascript - D3.js 中的堆叠区域

php - PHP 的 C++ 中的运算符重载等效,默认输出的 echo/print 类变量