Arrays 如何使用node js在单个数组中推送相似的对象元素?
我正在使用NodeJSAPI调用从PostgreSQL检索一些数据。在这里,我使用了两个不同的pg表。我正在检查条件,如果“unit_code”等于“fk_unit_code”,则它应该组合“Group_individuals”列中的相应值,并将其推送到数组中。为了获得“userData”,我在两个表之间进行左连接。我已经尝试了下面的代码,但它在for循环的每次迭代中都推动一行Arrays 如何使用node js在单个数组中推送相似的对象元素?,arrays,node.js,postgresql,for-loop,Arrays,Node.js,Postgresql,For Loop,我正在使用NodeJSAPI调用从PostgreSQL检索一些数据。在这里,我使用了两个不同的pg表。我正在检查条件,如果“unit_code”等于“fk_unit_code”,则它应该组合“Group_individuals”列中的相应值,并将其推送到数组中。为了获得“userData”,我在两个表之间进行左连接。我已经尝试了下面的代码,但它在for循环的每次迭代中都推动一行 function buildObject(userData){ for (var i = 0; i < use
function buildObject(userData){
for (var i = 0; i < userData.length; i++){
myArray = new Array() // at each iteration this will be empty and we get new group of "Group_individuals"
if(userData[i].unit_code=== userData[i].fk_unit_code){
myArray.push(userData[i].Group_individuals)
console.log(myArray)
}
}
}
我希望myArray看起来像:
在第一次迭代中,myArray=[John,Rocky,James]
在第二次迭代中,myArray=[Alex,Prince]
var userData=[{
团体(个人):"约翰",,
单位代码:2,
fk_单位代码:2,
},{
小组(个人):"洛奇",,
单位代码:2,
fk_单位代码:2,
},{
小组成员:“Alex”,
单位代码:3,
fk_单位代码:3,
},{
组_个人:“王子”,
单位代码:3,
fk_单位代码:3,
},{
小组(个人):"詹姆斯",,
单位代码:2,
fk_单位代码:2,
}]
var result={};
for(userData中的var i){
if(userData[i].unit\u code!=userData[i].fk\u unit\u code)
持续
var key=`${userData[i].unit_code}${userData[i].fk_unit_code}`;
结果[键]=结果[键]| |[];
结果[key].push(userData[i].组\个人);
}
控制台日志(结果)
向OP解释这个答案可能很好,这样他们可以学到一些东西(以及未来的读者)@vcode您的答案非常感谢,这帮助我实现了我的期望。非常感谢。
[
{ Group_individuals : 'John',
unit_code : 2,
fk_unit_code: 2,
}
{ Group_individuals : 'Rocky',
unit_code : 2,
fk_unit_code: 2,
}
{ Group_individuals : 'Alex',
unit_code : 3,
fk_unit_code: 3,
}
{ Group_individuals : 'Prince',
unit_code : 3,
fk_unit_code: 3,
}
{ Group_individuals : 'James',
unit_code : 2,
fk_unit_code: 2,
}
]