我有以下内容:
var data.roles = "Admin:Xxxx:Data";
for (role in data.roles.split(':')) {
if (role == 'Admin') { user.data.role.isAdmin = true }
if (role == 'Data') { user.data.role.isData = true }
if (role == 'Xxxx') { user.data.role.isXxxx = true }
if (role == 'Test') { user.data.role.isTest = true }
}
有没有一种方法可以在没有if检查的情况下完成这项工作。我想要的是有一个适用于data.roles中存在的任何角色的解决方案。
答案 0 :(得分:1)
由于 split 返回一个数组,您可以使用 forEach :
var data = {roles: "Admin:Xxxx:Data"};
var user = {data: {role:{}}};
data.roles.split(':').forEach(function(v) {
user.data.role['is' + v] = true;
})
console.log(user.data.role.isXxxx); // true
没有 forEach 的浏览器有polyfill at MDN。