我必须考虑这个问题的解决方案,但似乎无法正确解决问题。
我有一个像这样的数组object
:
[
{ ItemID: 1, Path: '/Admin', Name: 'Admin' },
{ ItemID: 2, Path: '/Product', Name: 'Product' },
{ ItemID: 1, Path: '/Reports', Name: 'Reports' }
]
我想映射每个项目,对于每个项目,我需要运行一个函数,该函数将返回它们是否具有访问权限。即布尔值(是/否)。
到目前为止,我有这样的事情:
const newData = data.map((curr, val , arr) => {
if (checkAccess(username, curr.Name )) { //checkAccess returns true or false
return { ...current };
}
});
我只想返回他们有权访问的内容。
因此,假设用户无法访问Admin
,则最终对象应该是:
[
{ ItemID: 2, Path: '/Product', Name: 'Product' },
{ ItemID: 1, Path: '/Reports', Name: 'Reports' }
]
编辑:
问题还在于该函数没有返回true / false
function checkInGroup(username, name) {
let inGroup = "";
ad.isUserMemberOf(username, name, function(err, isMember) {
if (err) {
return res.json("Error ", err);
}
inGroup = isMember; //this part returns true
});
return inGroup; //this seems to return empty string
}
答案 0 :(得分:4)
尝试使用filter,因为它会创建一个包含所有通过条件的元素的新数组:
const res = data.filter(obj => obj.Path !== '/Admin');
console.log(res);