javascript中相同对象名称的总和

javascript中相同对象名称的总和,javascript,jquery,json,object,Javascript,Jquery,Json,Object,嗨,朋友们,我是javascript的初学者,我如何对对象名对应值的相同n个数求和,并将结果推送到新数组。这是一个示例对象 var obj_1={'delivered':10,'due':11,'team_name':'UK'}; var obj_2={'delivered':10,'due':11,'team_name':'US'}; var obj_nth={'delivered':10,'due':11,'team_name':'UK'} 但是我希望得到这个输出[UK:{'delivere

嗨,朋友们,我是javascript的初学者,我如何对对象名对应值的相同n个数求和,并将结果推送到新数组。这是一个示例对象

var obj_1={'delivered':10,'due':11,'team_name':'UK'}; var obj_2={'delivered':10,'due':11,'team_name':'US'}; var obj_nth={'delivered':10,'due':11,'team_name':'UK'}


但是我希望得到这个输出[UK:{'delivered':20,'due':22},US:{'delivered':10,'due':11}],所以请帮助我下一步要做什么

您可以首先创建对象数组,然后减少以返回一个对象

var obj_1={'delivered':10,'due':11,'team_name':'UK'}; var obj_2={'delivered':10,'due':11,'team_name':'US'}; var obj_nth={'delivered':10,'due':11,'team_name':'UK'}; var result=[obj_1,obj_2,obj_nth]。约简函数,e{ if!r[e.团队名称]{ r[e.team_name]={已交付:0,到期:0} } r[e.团队名称].已交付+=e.已交付 r[e.team_name].due+=e.due 返回r }, {}
logresult您可以首先创建对象数组,然后减少以返回一个对象

var obj_1={'delivered':10,'due':11,'team_name':'UK'}; var obj_2={'delivered':10,'due':11,'team_name':'US'}; var obj_nth={'delivered':10,'due':11,'team_name':'UK'}; var result=[obj_1,obj_2,obj_nth]。约简函数,e{ if!r[e.团队名称]{ r[e.team_name]={已交付:0,到期:0} } r[e.团队名称].已交付+=e.已交付 r[e.team_name].due+=e.due 返回r }, {} console.logresult 见:

见:

将这些对象存储在中,例如:

var myObjects = [
    {'delivered':10,'due':11,'team_name':'UK'},
    {'delivered':10,'due':11,'team_name':'US'},
    {'delivered':10,'due':11,'team_name':'UK'}
];
创建一个新对象,在其中存储结果:

var results = {};
然后使用for循环遍历数组,并根据team_name添加其他属性:

将这些对象存储在中,例如:

var myObjects = [
    {'delivered':10,'due':11,'team_name':'UK'},
    {'delivered':10,'due':11,'team_name':'US'},
    {'delivered':10,'due':11,'team_name':'UK'}
];
创建一个新对象,在其中存储结果:

var results = {};
然后使用for循环遍历数组,并根据team_name添加其他属性:


这些对象是否存储在数组中?或者它只是不同的变量?请输入一些您尝试过的代码。是的,这些对象存储在数组中。这些对象存储在数组中吗?或者它只是不同的变量?请输入一些您尝试过的代码。是的,这些obj存储在一个数组中为什么是concat而不是简单的[o1,o2,o3]?为什么是concat而不是简单的[o1,o2,o3]?
var results = {};
for (var i = 0; i <= myObjects.length; i++) {
    if (typeof results[myObjects[i].team_name] !== undefined) {
        results[myObjects[i]].delivered += myObjects[i].delivered;
        results[myObjects[i]].due += myObjects[i].due; 
    } else {
        // Set 0 to these properties if the entry didn't exist
        results[myObjects[i]].delivered = 0;
        results[myObjects[i]].due = 0;
    }
}