如何映射和更改数组内的值?

时间:2019-01-08 08:09:19

标签: javascript

我对JavaScript还是很陌生,我想知道如何检查角色类型的每次迭代并更改值,然后根据角色类型相应地更改它。

array = [
 {
id: "1",
role: "User"
},
{
id: "2",
role : "Provider"
},
{
id: "3",
role: "Administration"
}
]

// If role: User, change to role: "Disable"
// If role: Provider, change role to "Read Me"
// If role Administration, change role to "Admin"

3 个答案:

答案 0 :(得分:1)

类似的东西应该可以工作:

let array = [
    {
        id: "1",
        role: "User"
    },
    {
        id: "2",
        role : "Provider"
    },
    {
        id: "3",
        role: "Administration"
    }
];

let roleMappings = {
    User: "Disable",
    Provider: "Read Me",
    Administration: "Admin"
};

let result = array.map( value => {
    value.role = roleMappings[value.role];
    return value;
});
console.log(result);

答案 1 :(得分:0)

您可以只使用一个简单的forEach循环并检查角色,然后相应地进行更改。

let arr = [
 {
   id: "1",
   role: "User"
 },
 {
   id: "2",
   role : "Provider"
 },
 {
   id: "3",
   role: "Administration"
 }
];

arr.forEach(obj => {
  // check for whatever value you need
  if (obj.role === 'User') {
    // change the value
    obj.role = 'abc';
  }
  // add more checks if needed
});

console.log(arr);

答案 2 :(得分:0)

array.forEach(function(val,index){
var newRole ="";
if(val.role == 'User') {
   newRole = 'Disable';
}else if(val.role == 'Provider'){
   newRole = 'Read Me';
}

});

我不确定更改角色是什么意思。但是基于每个对象的现有角色,如果您想更改访问控制,那么以上代码将为您提供帮助。 您还可以使用开关盒代替if。