基于传入密钥的json对象更改值函数

时间:2018-09-26 21:48:38

标签: javascript json object key

我想使用允许您传递要更改的键(pName)的函数来更改json对象内的值

var users = {
  john: {
    read: true,
    write: false
  },
  mike: {
    read: true,
    write: false
  }
}

var chgPermission = function (userName, pName, pValue) {
  if (users[userName]) {
    users[userName].pName = pValue;
  } else {
    console.log(`Could not find: ${userName}`)
  }
}

chgPermission("mike", "write", true)

这不起作用,因为它查找的是users [username] .pName(不存在)而不是users [userName] .write

要使该函数允许我更改传入的键的值,我需要做些什么。

谢谢

2 个答案:

答案 0 :(得分:2)

我认为您想要这样的东西:

var chgPermission = function (userName, pName, pValue) {
  if (users[userName]) {
    users[userName][pName]= pValue;
  } else {
    console.log(`Could not find: ${userName}`)
  }
}

答案 1 :(得分:1)

只需将users[userName].pName更改为users[userName][pName]