Я пытаюсь получить элемент "Ошибки" из объекта ниже:
{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
Объект включается в массив объектов как ответ на вызов ajax, сделанный конечной точке API.
$.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, и это действительно поставило меня в тупик.
Урок здесь заключается в том, чтобы быть осторожным с правописанием, особенно с буквами, которые могут быть общими для английского и вашего языка.
Предполагая, что это опечатка, вам нужно предоставить некоторый контекст для кода, например, это происходит в результате асинхронного вызова?
Я добавил еще немного кода, чтобы объяснить, что я делаю.
Первая буква Εrror — греческая Ε, так что исправьте свой бэкенд. (голосование за закрытие как опечатка)
Вот почему Εrrors здесь не выделено.
@GabrielePetrioli Это была просто орфографическая ошибка здесь и в моем реальном коде. В частности, не в моем коде js, а в методе просмотра django.
@GabrielePetrioli, я тоже проголосовал за закрытие. Спасибо за простое, но очень полезное наблюдение. Хотя KeyError, как в Python, был бы очень полезен.
Добро пожаловать, я тоже грек и предположил, что ваше имя такое же, и поэтому подумал, что это может быть такой проблемой ..



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам нужно использовать все квадратные скобки [] для этого:
rowData["Errors"];
Но так как это имя свойства без пробелов и специальных символов, вы можете использовать простую запись через точку, которая будет работать идеально:
rowData.Errors;
Я пробовал то, что вы упомянули, с тем же результатом, к сожалению.
Можете ли вы опубликовать объект rowData в виде кода, а не изображения? Возможно, у вас есть вложенные объекты, но мы не можем сказать об этом из-за презентации.
rowData{"Errors"]должен выброситьSyntaxError, а не вернутьundefined. Пожалуйста, опубликуйте минимальный воспроизводимый пример как текст, а не как изображение (не публикуйте изображения кода)