我正在尝试使用object
定位str = "a.b.c"
更改a.b.c
至a = {
b: {
c: {
d: 'working'
}
}
}
function go(o, v) {
console.log(str[v])
}
str = "a.b.c" // reference to an object
go(str, "d")
a = {
b: {
c: {
d: 'working'
}
}
}
function go(o, v) {
console.log(a.b.c[v])
}
str = "a.b.c"
go(str, "d")
docker pull dgraziotin/lamp && docker run -t -i -p 80:80 -p 3306:3306 --name osxlamp dgraziotin/lamp
答案 0 :(得分:1)
您可以在"."
上拆分字符串,然后在结果数组上使用reduce()
函数迭代钻取到您的对象:
var a = {
b: {
c: {
d: 'working'
}
}
};
function go(o, v) {
return (o + "." + v).split(".").reduce((y,z) => y[z], this);
}
var result = go('a.b.c', 'd');
console.log(result);

答案 1 :(得分:0)
您想使用名为object-path
的库:
https://www.npmjs.com/package/object-path
这样您就可以通过以下方式访问该值:
str = "a.b.c"
objectPath.get(a, str);
答案 2 :(得分:0)
您可以尝试使用 eval()功能
https://www.w3schools.com/jsref/jsref_eval.asp
a = { b: { c: { d: 'working' } } }
function go(o, v) {
console.log(eval(str)[v])
}
str = "a.b.c"
go(str, "d")