如何使用javascript、jquery或angularjs为所选键添加JSON值?

如何使用javascript、jquery或angularjs为所选键添加JSON值?,javascript,jquery,angularjs,json,Javascript,Jquery,Angularjs,Json,我有以下json: var json = var data = [{ "a": 150 }, { "a": 50 }, { "b": 100 }, { "b": 25 }]; 我想在我的finaljson中添加“a”和“b”的值(这是我想要的输出json),比如: 如何使用javascript或jquery或angularjs获取给定json内容的上述finaljson结果结构 请注意这里的finaljson应该是上面的“a”值和“b”值的添加,比如:a:150

我有以下
json

var json = var data = [{
    "a": 150
}, {
    "a": 50
}, {
    "b": 100
}, {
    "b": 25
}];
我想在我的
finaljson
中添加“
a
”和“
b
”的值(这是我想要的输出json),比如:

如何使用
javascript
jquery
angularjs
获取给定
json
内容的上述
finaljson
结果结构

请注意这里的
finaljson
应该是上面的“
a
”值和“
b
”值的添加,比如:
a:150+50=200,b:100+25=125

请提前让我知道并感谢。已创建。

var json=[{
“a”:150
}, {
“a”:50
}, {
“b”:100
}, {
“b”:25
}];
var finaljson=[];
var a=json[0].a+json[1].a;
var b=json[2].b+json[3].b;
finaljson.push(a);
finaljson.push(b);

log(finaljson)这个解决方案怎么样

const json = [
  { "a": 150 }, 
  { "a": 50  }, 
  { "b": 100 }, 
  { "b": 25  }
];

const reduce = (data) => 
  data.reduce((acc, obj) => {
    for(const i in obj){
      acc[i] = (acc[i] || 0) + obj[i];
    }
    return acc;
  }, {})
;

reduce(json);
将输出

{
    "a": 200,
    "b": 125
}

可以使用哈希表作为对相同键的结果的引用

var data=[{a:150},{a:50},{b:100},{b:25}],
结果=数据.reduce(函数(散列){
返回函数(r,a){
var key=Object.keys(a)[0],
o={};
如果(!哈希[键]){
o[键]=0;
hash[key]=o;
r、 推(o);
}
散列[key][key]+=a[key];
返回r;
};
}(Object.create(null)),[]);
控制台日志(结果)
让json=[
{“a”:150},
{“a”:50},
{“b”:100},
{“b”:25}
];
让sumSameProperties=function(json){
让middleJson=[];
for(设i=0;i
@Guna抱歉,代码中有错误。请再检查一下。现在它工作正常了。=>这是什么意思?它的
常量是一个保留关键字,您不能命名变量
常量
,然后命名实际的
常量
。。。等等<代码>减少
,当您使用
数组时。减少
?@Бццццццццццццццц!你能检查一下吗!提前谢谢!我打赌SO需要一个独立于阵列的通用动态解决方案indexes@Mahi,我需要这样的解:{a:200},{b:125}。请提前让我知道并感谢!谢谢你的回复,是的,它也按照要求工作!
{
    "a": 200,
    "b": 125
}
let json = [   
    { "a": 150 },
    { "a": 50  },
    { "b": 100 },
    { "b": 25  } 
];

let sumSameProperties = function (json) {
    let middleJson = [];
    for (let i = 0; i < json.length; ++i) {
        let keys = Object.keys(json[i]);
        for (let k = 0; k < keys.length; ++k) { 
            if(!isNaN(middleJson[keys[k]])){
                middleJson[keys[k]] += json[i][keys[k]];
            }else {
                middleJson[keys[k]] = json[i][keys[k]];
            }
        }
    }
    return middleJson;
};
let finalJson = [];
let almostThere = sumSameProperties(json);
for (let key in almostThere) {
    let obj = {};
    obj[key] = almostThere[key];
    finalJson.push(obj);
}
console.log(finalJson);