【发布时间】:2020-02-15 00:30:03
【问题描述】:
我有一组组 s.t.每个组有很多用户
我想返回给定组数组的所有(唯一)用户。
到目前为止,我有
let actor = await User.query().findById(req.user.id).eager('groups') // find the actor requesting
let actor_groups = actor.groups // find all groups of actor
if (actor_groups.length > 1)
var actor_groups_users = actor_groups[0].user
for (let i = 0; i < actor_groups.length; i++) {
const actor_groups_users = actor_groups_users.concat(actor_groups[i]);
}
console.log('actor groups users is', actor_groups_users);
else
// return users from the first (only) group
返回错误:actor_groups_users is not defined
感觉像一个迂回的方式来做到这一点。有没有办法将 actor_groups 组合成一个组合组?
【问题讨论】:
-
去掉这个
const actor_groups_users = actor_groups_users.concat(actor_groups[i]);前面的const。你不想定义一个新变量,你想使用你已经定义的那个。 -
如果你有一个数组数组,你可以使用较新的数组方法
.flat()将它们全部组合起来。 -
你如何确定用户的唯一性?通过对象的身份还是通过它们的 id?
-
ID。谢谢。我想我可以处理唯一性约束。将尝试平面方法。
标签: javascript arrays node.js express concatenation