Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用带变量的javascript访问对象数组_Javascript_Jquery_Internationalization - Fatal编程技术网

如何使用带变量的javascript访问对象数组

如何使用带变量的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

我希望得到类似于u tr(“configMigratedTo”,[2])的结果; 然后它会给我

已将配置迁移到配置程序:2

我不知道我的代码哪里出了错,这是否足够

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]))