1

尝试使用星号作为对象的关键引用时出现错误。我试过格式化不同的方式,但总是得到同样的错误:

SyntaxError: missing name after . operator

这是我的代码,其中包含从 wikipedia api 呈现的对象...

有问题的行是:

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.");
    }
}

如何格式化我的代码以使星号像键值一样显示?谢谢。

4

3 回答 3

5

您也可以使用括号:

shortcut.langlinks[index]['*']
于 2013-07-27T22:36:17.780 回答
3

当您想要访问名称也是标识符的有效名称的属性时,您可以使用点语法:(shortcut.langlinkslanglinks有效的标识符名称)。

当属性名称不是有效的标识符名称时,您必须改用尖括号语法:(langlinks[index]["*"]不是*有效的标识符名称,因为它不以“$”、“_”或任何归类为信)。

于 2013-07-27T22:38:31.597 回答
1

您可以使用:

console.log(shortcut.langlinks[index]['*']);
于 2013-07-27T22:38:00.000 回答