2013-07-27 6 views
1

У меня ошибка при попытке использовать звездочку в качестве ключевой ссылки на объект. Я пытался форматировать различные способы, но всегда получаю ту же ошибку:Использование звездочки * в качестве ключа в объекте

SyntaxError: missing name after . operator 

Вот мой код с объектом оказанного из википедии апи ...

линии в вопросе:

console.log (shortcut.langlinks [index]. *);

var wp = { 
    "query":{ 
     "pages":{ 
      "3823":{ 
       "pageid":3823, 
       "ns":0, 
       "title":"Binary", 
       "extract":"<p><b>Binary</b> means <i>composed of two pieces or two parts</i> and may refer to:</p>\n\n", 
       "links":[{ 
        "ns":0,"title":"Binary-coded decimal"},{ 
        "ns":0,"title":"Binary (Assemblage 23 song)"},{ 
        "ns":0,"title":"Binary code"}], 
       "langlinks":[{ 
        "lang":"de","*":"Bin\u00e4r"},{ 
        "lang":"fr","*":"Binaire"},{ 
        "lang":"ur","*":"\u062a\u062b\u0646\u06cc\u06c1"}] 
      } 
     } 
    } 
}; 

var page_key = Object.keys(wp['query']['pages'])[0]; 
var shortcut = wp['query']['pages'][page_key]; 

function translation() { 
    if (shortcut.langlinks.length > 0){ 
     for (var index in shortcut.langlinks){ 
      if (shortcut.langlinks[index].lang == 'de'){ 
       console.log(shortcut.langlinks[index].*); 
      } 
     } 
    } else { 
     console.log("There are no language links."); 
    } 
} 

Как отформатировать мой код, чтобы получить звездочку для отображения, как значение ключа? Спасибо.

ответ

5

Вы можете использовать скобки, а также:

shortcut.langlinks[index]['*'] 
1

Вы можете использовать:

console.log(shortcut.langlinks[index]['*']); 
3

Если вы хотите получить доступ к свойству, имя которого также является допустимым именем для identifier вы можете использовать точечный синтаксис: shortcut.langlinks (langlinks - допустимое имя идентификатора).

Когда имя свойства не является допустимым именем идентификатора, вы должны использовать синтаксис угловую скобку вместо: langlinks[index]["*"] (* не является допустимым именем идентификатора, поскольку он не начинается с «$», «_», или любой Unicode символ, который классифицируется как буква).

+1

Это не угловые кронштейны, это квадратные скобки :) –

Смежные вопросы