假设我有这样的数据
data = {
personal : {
sport : "Football"
}
}
我尝试提取字符串。这行得通
let str1 = "personal"
let str2 = "sport"
console.log(data[str1][str2])
问题我有一个更多的字符串。每个字符串是如此不同。我如何才能为每个字符串使用一个。
let str_1 = "personal.sport"
let str_2 = "personal.sport.xxx"
let str_3 = "personal.aaa.sport.xxx"
.....
..
let str_n = "bbb.ccc.ddd"
console.log(data[str_1])
console.log(data[str_2])
console.log(data[str_3])
....
...
console.log(data[str_n])
谢谢。
最佳答案
我不能完全确定我明白您的意思,但这是您所追求的吗?
var data = {
personal: {
sport: "Football"
}
};
let str_1 = "personal.sport";
let str_2 = "personal.sport.xxx";
let str_3 = "personal.aaa.sport.xxx";
function getValue(path) {
var obj = data;
var props = path.split(".");
for (const prop of props) {
obj = obj[prop];
if (!obj)
return obj;
}
return obj;
}
console.log(getValue(str_1))
关于javascript - 我如何才能将变量用作对象名称(子对象的情况),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49725558/