gpt4 book ai didi

javascript - 有没有什么方法可以在不迭代的情况下从对象数组中创建属性数组?

转载 作者:行者123 更新时间:2023-12-03 00:32:34 25 4
gpt4 key购买 nike

抱歉,标题不好 - 我不知道如何格式化它。我会解释我的问题。

所以我有这个req.user:

click

我想构建一个中间件,这样我就可以通过检查 req.user.privileges.region 中的任何代码是否与我在数据库中的代码匹配来检查用户是否有权访问该区域(1 用于管理员) 。

middleware.access2 = function(req, res, next)
{
if(req.isAuthenticated())
{
User.findOne({'username': req.user.username, "privileges.region": {$in: [1, req.body.regiune]}}, function(err, usr)
{
if(err)
{
console.log("middleWare.access2 - " + err);
return res.redirect("/login");
}
else
{
if(usr !== null)
{
console.log(usr);
return next();
}
else
{
return res.redirect("/login");
}
}
})
}
}

有什么方法可以在不迭代的情况下做到这一点吗?我可以使用用户拥有的区域(来自 req.user)构建一个数组,并将其传递给查询。

我可以以某种方式访问​​privileges.region,这样我就不需要迭代,还是应该使用上面的想法?

谢谢。

最佳答案

您可以使用lodash我写了一个基本的例子,可以再完善一下。

const _=require('lodash')

const user={
username:'marcu',
privileges:[
{
id:1,
region:10,
write:1,
edit:1
},
{
id:2,
region:15,
write:1,
edit:1
},
{
id:3,
region:20,
write:1,
edit:1
}
]
}

found=_.findKey(user.privileges,o=>o.region===15)

console.log(found);

对于o.region===15,输出为1,对于o.region===10,输出为0,对于o.region ===20,输出为2,依此类推。findkey 返回包含该值的对象的索引。当值不存在时,结果未定义

关于javascript - 有没有什么方法可以在不迭代的情况下从对象数组中创建属性数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53794077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com