簡體   English   中英

我可以動態設置屬性的值嗎?

[英]Can I set the value of a property dynamically?

我有以下幾點:

    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中存在的任何角色起作用的解決方案。

由於split返回一個Array,因此可以使用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的瀏覽器,MDN上有一個polyfill

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM