Javascript 使用对象键的var创建对象?

Javascript 使用对象键的var创建对象?,javascript,Javascript,我有一个目标: "locales": { "en":["au", "uk"], "de":["ch", "de"] } 我检查此对象中是否有语言,然后仅使用找到的语言创建对象 var language = 'en'; if(language in locales){ locales = { language : locales[language]}; ... 但记录区域设置会提供: { language: [ 'au', 'uk' ] } 我希望看到:

我有一个目标:

"locales": {
    "en":["au", "uk"],
    "de":["ch", "de"]
 }
我检查此对象中是否有语言,然后仅使用找到的语言创建对象

var language = 'en';

if(language in locales){

    locales = { language : locales[language]};
    ...
但记录区域设置会提供:

{ language: [ 'au', 'uk' ] }
我希望看到:

{ en: [ 'au', 'uk' ] }
新对象使用字符串而不是变量作为对象键-我如何解决这个问题?

您必须在此处使用赋值

var language = 'en';
if(language in locales){
    locales = { [language] : locales[language]};
不能将变量直接用作对象的键

你必须在这里使用赋值

var language = 'en';
if(language in locales){
    locales = { [language] : locales[language]};
不能将变量直接用作对象的键

locales={language:locales[language]}

您有两个问题:

  • 您可以设置键
    locales
  • 您可以使用
    区域设置两次
  • 这样做:

    var locales = {
        "en": ["au", "uk"],
        "de": ["ch", "de"]
            },
    language = 'en';
    
    if (locales[language]){
        locales = locales[language];
    }
    
    console.log(区域设置) 输出:

    locales={language:locales[language]}

    您有两个问题:

  • 您可以设置键
    locales
  • 您可以使用
    区域设置两次
  • 这样做:

    var locales = {
        "en": ["au", "uk"],
        "de": ["ch", "de"]
            },
    language = 'en';
    
    if (locales[language]){
        locales = locales[language];
    }
    
    console.log(区域设置) 输出:

    我需要将对象称为locales。为您更新答案我需要将对象称为locales。为您更新答案