假设我有以下json文件:
const obj1 = {
en: {
user: {
name: "John"
}
},
language: "en"
}
const obj2 = {
ru: {
user: {
name: "Vladimir"
}
},
language: "ru"
}
要用NODE I检索这些对象,将使用以下代码:
let en_name = obj1.en.user.name; //returns John
let ru_name = obj2.ru.user.name; //returns Vladimir
是否可以使用对象language
,并基于该语言调用user.name
? 也许像这样的东西,不起作用:
let lang = obj.language
let anyName = language.user.name;
更新:
我想访问data.jvprofiles.any_language.title,如图所示:
console.log(data.preferredLanguage); //Returns "nl"
let title = data.jvProfiles.nl.title; //Ruturns "Database Marketeer"
console.log(data.jvProfiles.data[data.preferredLanguage]); //gives error
console.log(data.jvProfiles.data[data.preferredLanguage].title); //gives same error
TypeError: Cannot read property 'nl' of undefined
解决方案:
console.log(data.jvProfiles[data.preferredLanguage].title);
可以使用方括号表示法动态访问对象属性:
null
const obj = {
en: {
user: {
name: "John"
}
},
language: "en"
}
const name = obj[obj.language].user.name
console.log(name)