比较数组中的JavaScript对象时出现问题
我有这两组信息。我想解决这个问题:(给定用户名和所需权限,如果 用户拥有该权限,否则为false。) 到目前为止,我编写的代码是:比较数组中的JavaScript对象时出现问题,javascript,arrays,Javascript,Arrays,我有这两组信息。我想解决这个问题:(给定用户名和所需权限,如果 用户拥有该权限,否则为false。) 到目前为止,我编写的代码是: function userHasPermission(userName, requiredPermission) { //looping through first array for (i = 0; i < users.length; i++) { if (users[i].name === userName) { // l
function userHasPermission(userName, requiredPermission) {
//looping through first array
for (i = 0; i < users.length; i++) {
if (users[i].name === userName) {
// looping through the second array
for (j = 0; j < groups.length; j++) {
//here I don't know how to resolve this comparison, because as far as I understand it, the script has to check if userName is a valid ID inside groups array?
if (users[i].groups.includes(groups[j].id) && (groups[j].permissions.includes(requiredPermission))) {
return true;
} else {
return false;
}
}
}
}
};
userHasPermission("mary", "WRITE");
函数userHasPermission(用户名,requiredPermission){
//循环通过第一个数组
对于(i=0;i
我对香草JavaScript还不熟悉,我被困在这一点上,任何帮助都将不胜感激 函数userHasPermission(用户名,requiredPermission){
//循环通过第一个数组
对于(i=0;i
以上是基于代码的循环样式所必需的。我个人更喜欢函数式代码风格。供参考:
函数userHasPermission(用户名,requiredPermission){
const targetUser=users.find(user=>user.name==userName);
如果(!targetUser)返回false;
const userGroups=groups.filter(g=>targetUser.groups.includes(g.id));
const permissions=userGroups.flatMap(g=>g.permissions);
返回权限。包括(requiredPermission);
}
您也可以发布输出吗?脱离主题,但我无法帮助添加,组对象的权限
字段不必是字符串数组。如果您可以控制代码,请尝试查看
function userHasPermission(userName, requiredPermission) {
//looping through first array
for (i = 0; i < users.length; i++) {
if (users[i].name === userName) {
// looping through the second array
for (j = 0; j < groups.length; j++) {
//here I don't know how to resolve this comparison, because as far as I understand it, the script has to check if userName is a valid ID inside groups array?
if (users[i].groups.includes(groups[j].id) && (groups[j].permissions.includes(requiredPermission))) {
return true;
} else {
return false;
}
}
}
}
};
userHasPermission("mary", "WRITE");
function userHasPermission(userName, requiredPermission) {
const user = users.find(u => u.name === userName);
let result = false;
user.groups.forEach(id => {
const group = groups.find(g => g.id === id);
result = group.permissions.includes(requiredPermission);
});
return result;
};
userHasPermission("mary", "WRITE");