如果我有一个带有不同语言短语的JSON:
var lang = {
'topic' : {
'en' : 'Topic',
'et' : 'Teema',
'fi' : 'Aihe'
},
'MainPage' : {
'en' : 'Main page',
'et' : 'Pealeht',
'fi' : 'Pääsivu'
}//,
//...etc
};
如何定义选择特定语言的功能:
function getText(lang, langKey) {
//???????
return langJson;
}
输出相同的短语,如:
getText(lang, 'en'); //outputs {topic:'Topic',MainPage:'Main page',..}
getText(lang, 'et'); //outputs {topic:'Teema',MainPage:'Pealeht',..}
getText(lang, 'fi'); //outputs {topic:'Aihe',MainPage:'Pääsivu',..}
一切顺利:我
答案 0 :(得分:3)
基本上,您必须浏览整个lang
对象并选择正确语言的值。
Object.keys
将返回包含初始Array
对象的键的lang
。
您可以使用它们来创建新对象。
您可以使用for循环迭代这些键并将相应的值添加到结果对象,但我喜欢使用reduce
来执行此操作:
function getText(lang, langKey) {
return Object.keys(lang).reduce(function(re, key) {
re[key] = lang[key][langKey];
return re;
}, {})
}