【问题标题】:Map a string array to a json object in JavaScript [duplicate]将字符串数组映射到JavaScript中的json对象[重复]
【发布时间】:2019-07-18 21:49:47
【问题描述】:

我有一个配置文件:

{
  "permission": {
    "users": {
      "image": {
        "data": "example"
      }
    }
  }
}

还有一个像这样调用路径的数组:

path = ['users', 'image']

如何获取数据?

第一次尝试:

config.permission.path[0].path[1];

第二次尝试:

switch (requestedPath[2]) {
    case 'users':
        switch (requestedPath[3]) {
            case 'image':
                mydata = config.permission.users["/image"]
        }
}

这可行,但有更好的方法吗?

【问题讨论】:

标签: javascript json


【解决方案1】:

您需要一个括号作为对象的property accessor,因为您将变量作为键。

config.permission[path[0]][path[1]];

对于更动态的方法,您可以使用未找到属性的默认对象来减少给定数据。

const getV = (object, path) => path.reduce((result, key) => (result || {})[key], object);

var config = { permission: { users: { image: { data: 'example' } } } },
    path = ['users', 'image'];

console.log(getV(config.permission, path));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-29
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多