Я наткнулся на эту загадочную ошибку при переходе по объектам JavaScript с использованием конструкции for..in
. У меня есть набор фиктивных данных похожи на это:Переменная неопределенная внутри JavaScript For-In loop
{
"12345678" : {
...
},
"12345679" : {
...
},
"12345680" : {
...
}
}
Может быть, это имеет значение, этот объект извлекается из базы данных, используя Firebase ответ встроенного .val()
метода. Это обычный объект js.
Однако при обходе объекта переменная, объявленная внутри, цикл for..in
как-то не определен. Я удалил весь окружающий код, кроме цикла, и ошибка все еще возникает:
for (key in data) {
console.log(data[key]);
}
// Throws ReferenceError: key is not defined
Я действительно сбит с толку. Как это возможно? Я думал, что переменная, прошедшая до for..in
, всегда была доступна (или хотя бы определена) внутри цикла.
Вы когда-нибудь определяли «ключ»? Как 'for (var key in data)'? Кроме того, попробовали ли вы распечатать 'data' с чем-то вроде' JSON.stringify (data, null, 4) '? – mc10
Да, это было глупо. Не объявлял как «var» нигде. Я общался с этим уже полчаса. Думаю, пришло время спать. – ppajer