为什么从对象获取项目会返回未定义的内容?

时间:2019-02-17 22:24:35

标签: javascript arrays object ecmascript-6

我正在尝试从下面的对象中获取“错误”项:

{Id: 15, Date: "22-02-2019", Time: "22:45", Sport: "Football", Country: "United Kingdom", …}
    Bet: "Win"
    Bookie: "Bet365"
    Competition: "Premier League"
    Country: "United Kingdom"
    Currency: "Euro"
    Date: "22-02-2019"
    Home: "Cardiff"
    Id: 15
    Odds: "1.45"
    Sport: "Football"
    Stake: "5.110"
    Status: "Won"
    Time: "22:45"
    Visitor: ""
    Εrrors: Array(2)
        0: (2) ["date", Array(1)]
        1: (2) ["visitor", Array(1)]
        length: 2
        __proto__: Array(0)
    __proto__: Object

对象包含在对象数组中,作为对api端点进行的ajax调用的响应。

    $.ajax({
        type: "POST",
        url: "/api/import",
        headers: {"X-CSRFToken": Cookies.get('csrftoken')},
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
        success: function (res) {
        ....}
    })

调用rowData["Date"]rowData["Time"]返回适当的值。

如果我做rowData["Errors"],我会得到undefined。我无法弄清楚它是否找不到Errors属性或其他原因。

我需要获取错误,以便可以遍历它们并将其显示在页面上。

我主要使用JS来进行DOM操作,这确实让我很沮丧。

本课要特别注意您的拼写,尤其是那些可能会用英语和您的语言共享的字母。

1 个答案:

答案 0 :(得分:2)

您需要为此使用所有方括号[]

rowData["Errors"];

但是,由于这是一个没有空格或特殊字符的属性名称,因此您可以使用简单的圆点表示法,该符号会完美地起作用:

rowData.Errors;