[英]How to access object array using javascript with variable
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"));
i want get result like __tr("configMigratedTo", [2]); 我想得到像__tr(“configMigratedTo”,[2])的结果; then it will give me
然后它会给我
Migrated configuration to configurator: 2 迁移配置到配置器:2
i do not know where is wrong in my code 我不知道我的代码在哪里出错了
Would that be enought? 这会是应该的吗?
var dict = { "configMigratedTo": { "message": "Migrated configuration to configurator: " } } function buildMessage(src,param){ var output = dict[src].message + param; return output; } console.log(buildMessage("configMigratedTo",2));
Try this one. 试试这个吧。 Hope it helps!
希望能帮助到你!
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]))
https://jsfiddle.net/eLd9u2pq/ https://jsfiddle.net/eLd9u2pq/
You are overcomplicating this, it's much easier using a regex and passing a function as replacer 你过度复杂,使用正则表达式并将函数作为替换器传递会更容易
var dict = { "configMigratedTo": { "message": "Migrated configuration to configurator: $1" } } function __tr(src, params) { if (! dict[src]) return src; if (! /\\$0/.test(dict[src].message)) params.unshift(''); return dict[src].message.replace(/\\$(\\d)+/g, (orig, match) => params[match] || orig); } console.log(__tr("configMigratedTo", [2]));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.