我有一个从中查询的postgres数据库,它会从我的查询中返回一组对象我使用的堆栈是nodeexpress、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}
有没有一种简单的方法可以将我得到的所有对象合并为一个对象,其中包含{名称:,别名:,kills:(相同名称/别名下的所有对象的总数),:deaths:(与kills相同),assistans:(与kills相同)}?
谢谢你的帮助。我还是个笨蛋。很抱歉
可能使用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时遇到了问题。当我刚使用group by teams.name时,由于某种原因,它会抛出一个错误。