如何使用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);