typescript - 如何检查对象内的数组是否包含特定值?
问题描述
我正在寻找使用角度组件检查管理员角色的最佳方法。
我在组件中有以下代码
checkIfIsAdmin(): any {
let user_string = localStorage.getItem("currentUser");
if (!isNullOrUndefined([user_string])) {
console.log(user_string);
return true;
} else {
return null;
}
}
我需要检查ROLE_ADMIN
我收到的格式如下:
{
"longId": 4,
"name": "bbb",
"email": "bbb@gmail.com",
"userName": "bbb",
"token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI0IiwiaWF0IjoxNTU5NDk0NTczLCJleHAiOjE1NTk0OTQ4NzN9.XmSHywZv09b4BR9-NxyCTVPF33pLsk3QtTEXQMQF4YHW7i27Ghj2Uh3WZAegpG4rdSImKcm1wMgJsPLpHcTyew",
"roles": [
"ROLE_USER",
"ROLE_ADMIN"
]
}
我不知道如何在if
条件内迭代角色,有人可以帮助我吗?
解决方案
根据您的代码,我假设-
user_string = {"longId":4,"name":"bbb","email":"bbb@gmail.com","userName":"bbb","token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI0IiwiaWF0IjoxNTU5NDk0NTczLCJleHAiOjE1NTk0OTQ4NzN9.XmSHywZv09b4BR9-NxyCTVPF33pLsk3QtTEXQMQF4YHW7i27Ghj2Uh3WZAegpG4rdSImKcm1wMgJsPLpHcTyew","roles":["ROLE_USER","ROLE_ADMIN"]}
如果我的理解是正确的,那么请执行以下操作 -
checkIfIsAdmin(): any {
let user_string = localStorage.getItem("currentUser");
const user = JSON.parse(user_string);
if (user ["roles"]) {
const roles = user["roles"];
const index = roles.indexOf("ROLE_ADMIN");
return index >= 0;
} else {
return false;
}
}
推荐阅读
- json - Angular:使用两种服务从一个组件添加数据时出现问题
- oracle - 需要帮助来创建一个过程,该过程将返回一个包含对象的对象类型
- react-native - react-native, jest, ts-jest: ReferenceError: React is not defined
- android - 即使启用 javascript,Android WebView 也不会加载 javascript 文件或函数
- javascript - 如果由于提升变量应该在我的情况下是函数的范围之上,为什么函数首先返回?
- javascript - 为自定义类创建上下文
- php - 我已经在 php 中编写了 api,我再次在 php 中使用我的 api,但是删除方法不起作用
- javascript - 为什么在浏览器中打开 index.html 与在节点服务器上打开 index.html 时 `this` 不同?
- javascript - 电子邮件脚本主题设置
- c# - 如何在 Windows 窗体 c# 中隐藏文本框光标