我有一个配置文件:
{
"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"]
}
}
这将起作用,但是有更好的方法吗?
答案 0 :(得分:3)
因为您将变量作为键,所以您需要为该对象使用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));