javascript 中是否有可以合并多个对象的函数或方法?

Is there a function or method in javascript that would amalgamate multiple objects?

我有一个从中查询的 postgres 数据库 returns 我从查询中返回了一组对象 我正在使用的堆栈是 node express,javascript,我正在使用 websockets 来捕获数据传输。我正在尝试将对象编译回 这是我从数据库中获取数据后使用的代码

`socket.on('get2GTPmatch', function(team2){
  for(var i = 0; i<team2.rows.length; i++){
    console.log(team2.rows[i]);
  }
});'




Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 3, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 3, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 3, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 2, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 1, assists: 2}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 4, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "coldzera", kills: 3, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "coldzera", kills: 2, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 0, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "FALLEN", kills: 2, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 0}

有没有一种简单的方法可以将我返回的所有对象组合成一个对象,其中包含{name: , alias:, kills:(同一 name/alias 下的所有对象总数), :deaths: (与击杀相同),助攻:(与击杀相同)} ?

感谢您的帮助。我还是菜鸟对不起。

也许使用 Object.assign() 方法:

var objs_merged = {};
socket.on('get2GTPmatch', function(team2){
    for(var i = 0; i < team2.rows.length; i++) {
        objs_merged = Object.assign(objs_merged, team2.rows[i]);
    }
});

如果您想要一个具有总和属性的对象,那么使用数据库查询会容易得多。

client.query(
    "SELECT teams.name AS team, players.alias, SUM(kills) AS kills, SUM(deaths) AS deaths, SUM(assists) AS assists FROM rounds \
    JOIN player_rounds ON rounds.id=player_rounds.round_id \
    JOIN players ON player_rounds.player_id=players.steam_id \
    JOIN teams ON players.team=teams.id \
    WHERE rounds.game_id='B3Il5v' \
    GROUP BY players.alias, teams.name\
    ORDER BY teams.name",
    function(err,results){
      if(err) {
        return console.error('error occurred');
      }
      // console.log(results);
      socket.emit('getKDAmatch', results)

});

事实上,我在使用 SQL 分组依据时遇到了问题。当我刚刚使用 group by teams.name 时,它会出于某种原因抛出错误。