我有一个像这样的物体:
{
"Boiler Emissions": {
"Manhattan": 2.7,
"Bronx": 3.2
},
"Benzene Concentration": {
"Manhattan": 2.1,
"Bronx": 3.5
}
}我想从两个子对象中计算Manhattan和Bronx的值,并得到如下所示的result:
{
"Manhattan": 4,8,
"Bronx": 6,7
}如何计算这些嵌套值?
发布于 2017-06-21 08:55:44
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);只需对主对象进行迭代。
发布于 2017-06-21 09:04:33
您只需要使用Object.keys()遍历对象的键并构造result对象。
这应该是您的代码:
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;
});演示:
这是一个可行的演示:
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);
发布于 2017-06-21 10:17:57
您需要使用筛选器数组方法。
function filterByID(item) {
if (item.CategoryID == viewCategoryProductID) {
return true;
}
return false;
}这是一个筛选数组方法,您需要传递数组的项和匹配值,它只返回匹配的值。
我希望它能帮到你
https://stackoverflow.com/questions/44671132
复制相似问题