如何使用带变量的javascript访问对象数组
我希望得到类似于u tr(“configMigratedTo”,[2])的结果; 然后它会给我 已将配置迁移到配置程序:2 我不知道我的代码哪里出了错,这是否足够如何使用带变量的javascript访问对象数组,javascript,jquery,internationalization,Javascript,Jquery,Internationalization,我希望得到类似于u tr(“configMigratedTo”,[2])的结果; 然后它会给我 已将配置迁移到配置程序:2 我不知道我的代码哪里出了错,这是否足够 var dict={ “配置迁移到”:{ “消息”:“已将配置迁移到配置程序:” } } 函数构建消息(src,param){ var output=dict[src]。消息+参数; 返回输出; } log(buildMessage(“configMigratedTo”,2))试试这个。希望有帮助 var dict = { "c
var dict={
“配置迁移到”:{
“消息”:“已将配置迁移到配置程序:”
}
}
函数构建消息(src,param){
var output=dict[src]。消息+参数;
返回输出;
}
log(buildMessage(“configMigratedTo”,2))代码>试试这个。希望有帮助
var dict = {
"configMigratedTo": {
"message": "Migrated configuration to configurator: $1"
}
}
var parametersForTranslation = {};
function __tr(src, params) {
parametersForTranslation[src] = params;
return buildMessage(src);
}
function buildMessage(src){
var message=dict[src] ? dict[src].message : src
console.log(message);
var messageArray = message.split("$");
var output = "";
messageArray.forEach(function(elem, index){
if(index === 0){
output += elem;
}else{
// get variable and index
var paramIndex = configMigratedTo.substring(0, 1);
var paramValue = parametersForTranslation[src][paramIndex-1];
output += paramValue;
output += configMigratedTo.substring(1);
}
});
return output;
}
__tr("configMigratedTo", [2]);
console.log(buildMessage("configMigratedTo"));
这太复杂了,使用正则表达式并将函数作为替换传递要容易得多
var dict={
“配置迁移到”:{
“消息”:“已将配置迁移到配置程序:$1”
}
}
函数uu tr(src,params){
如果(!dict[src])返回src;
if(!/\$0/.test(dict[src].message))参数反移位(“”);
返回dict[src].message.replace(/\$(\d)+/g,(orig,match)=>params[match]|orig);
}
log(uu tr(“configMigratedTo”,[2])
什么是\uu tr()
?@louyspatricebesette它是一个函数,上面在代码中定义。基本上,它意味着根据键查找翻译…\uu tr意味着翻译HA。好啊但你弄乱了源头。您想访问dict
对象中的configuredto
。它应该类似于:dict.configuredto.message
以获取值migratedconfiguration to configurator:$1
。。。现在我真的不知道1美元是否会作为一个变量考虑进去。。。这取决于<代码> Bug Debug()/Case>函数,而我不能像这样描述。嗯,在你使用编程逻辑之前,你需要一个坚实的编程基础(JavaScript,在这种情况下)的基本概念。通过尝试访问一个尚未定义的变量,您应该关注后者。您了解缺少的变量configuredto
var与dict
对象上现有属性之间的区别吗?
var dict = {
"configMigratedTo": {
"message": "Migrated configuration to configurator: $1"
}
}
function __tr(src, params)
{
for (var key in dict)
{
if (key === src)
{
var message = dict[key].message;
return message.substring(0, message.length - 2) + params[0];
}
}
return;
}
console.log(__tr("configMigratedTo", [2]))