首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套对象中的JavaScript计数值

嵌套对象中的JavaScript计数值
EN

Stack Overflow用户
提问于 2017-06-21 08:49:10
回答 6查看 2K关注 0票数 1

我有一个像这样的物体:

代码语言:javascript
复制
{
  "Boiler Emissions": {
                        "Manhattan": 2.7,
                        "Bronx": 3.2
                      },
  "Benzene Concentration": {
                             "Manhattan": 2.1,
                             "Bronx": 3.5
                           }
}

我想从两个子对象中计算ManhattanBronx的值,并得到如下所示的result

代码语言:javascript
复制
{
 "Manhattan": 4,8,
 "Bronx": 6,7
}

如何计算这些嵌套值?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-06-21 08:55:44

代码语言:javascript
复制
var obj={
    "Boiler Emissions": {
        "Manhattan": 2.7,
        "Bronx": 3.2
    },
    "Benzene Concentration": {
        "Manhattan": 2,1,
        "Bronx": 3.5
    }
};
var sums={};
for(values of obj){
 for(key in values){
  sums[key]= (sums[key]|| 0)  + values[key];
 }
}

console.log(sums);

只需对主对象进行迭代。

票数 0
EN

Stack Overflow用户

发布于 2017-06-21 09:04:33

您只需要使用Object.keys()遍历对象的键并构造result对象。

这应该是您的代码:

代码语言:javascript
复制
var result = {Manhattan: 0, Bronx: 0};
Object.keys(obj).forEach(function(k){
        result.Manhattan += obj[k].Manhattan ? obj[k].Manhattan : 0;
        result.Bronx+= obj[k].Bronx ? obj[k].Bronx: 0;
});

演示:

这是一个可行的演示:

代码语言:javascript
复制
var obj = {
  "Boiler Emissions": {
    "Manhattan": 2.7,
    "Bronx": 3.2
  },
  "Benzene Concentration": {
    "Manhattan": 2,
    "Bronx": 3.5
  }
};

var result = {Manhattan: 0, Bronx: 0};
Object.keys(obj).forEach(function(k){
        result.Manhattan += obj[k].Manhattan ? obj[k].Manhattan : 0;
        result.Bronx+= obj[k].Bronx ? obj[k].Bronx: 0;
});

console.log(result);

票数 1
EN

Stack Overflow用户

发布于 2017-06-21 10:17:57

您需要使用筛选器数组方法。

代码语言:javascript
复制
 function filterByID(item) {

            if (item.CategoryID == viewCategoryProductID) {
                return true;
            }
            return false;
        }

这是一个筛选数组方法,您需要传递数组的项和匹配值,它只返回匹配的值。

我希望它能帮到你

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44671132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档