首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将变量名合并为新的变量名

如何将变量名合并为新的变量名
EN

Stack Overflow用户
提问于 2022-06-27 18:39:34
回答 1查看 47关注 0票数 0

为了本地化目的,我尝试使用对象和数组。现在的问题是,它需要大量的编码才能从对象1到1加载正确的值。

因此,我试图通过从其他变量中创建变量名来简化流程。因此,我检查lang-attribute,并尝试将该值作为另一个变量名的一部分。

然而,这根本行不通。

例如,我可以有一个对象var text = { en: 'text', de: 'text' }

我可以通过以下方式加载正确的文本:

代码语言:javascript
复制
var language = document.documentElement.lang.toLowerCase();

switch (language) {
  case 'en':
    element.innerHTML = text.en;
    break;
  case 'de'
    element.innerHTML = text.de;
    break;
}

这对代码来说非常烦人,所以我尝试使用以下方法:

代码语言:javascript
复制
element.innerHTML = text.language;
element.innerHTML = `text.${language}`;
...

当然,这一切都没有用。

因此,我确实需要帮助,通过合并不同的变量名来创建变量名,例如:

代码语言:javascript
复制
var a = 'text.';
var b = 'en';
var c = a.b; => text.en;

最后,必须将其识别为变量名,而不是字符串!

代码语言:javascript
复制
var text = {
  en: 'Hello World',
  de: 'Hallo Welt',
  es: 'Hola Mundo',
  it: 'Ciao Mundo',
  fr: 'Bonjour Le Monde'
}

/* getting the language of the document */
var language = document.documentElement.lang.toLowerCase();

window.addEventListener('DOMContentLoaded', function() {
  var ele = document.body;
  /*does obviosly not work*/
  var content = `text.${language}`;
  ele.innerHTML = content;
  /*does work*/
  console.log(`the set language is: ${language}`);
});
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="de" dir="ltr">
  <head></head>
  <body></body>
</html>

EN

回答 1

Stack Overflow用户

发布于 2022-06-27 18:49:06

代码语言:javascript
复制
const content = text[language]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72776933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档