Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблемы с for (https://javascript.ru/forum/dom-window/78192-problemy-s.html)

l_mke 07.08.2019 18:03

Проблемы с for
 
Доброго времени суток!

Помогите разобраться, накатал такой скрипт, он подключается к гугл.таблицам и тащит от туда информацию.

При переборе массива данных в for в функции showGoods возникает ошибка, "Cannot read property 'length' of undefined", в чем может быть проблема?

window.addEventListener('load',function () {
	//Послать запрос
	let getJSON = function(url,callback) {
		let xhr = new XMLHttpRequest();
		xhr.open('GET',url,true);
		xhr.responseType = 'json';
		xhr.onload = function() {
			let status = xhr.status;
			if (status === 200) {
				callback(null,xhr.response)
			}else{
				callback(status,xhr.response);
			}
		};
		xhr.send();
	}
	getJSON('https://spreadsheets.google.com/feeds/list/1mR7U2IxFF9ZHL0DKmZdmA4QQKW9P816DM_MuA3LkOho/od6/public/values?alt=json',function(err,data) {
		if (err !== null) {
			console.log('Error: '+err)
		}else{
			data = data['feed']['entry'];
			document.getElementsByTagName('table').innerHTML = showGoods(data);
			console.log(showGoods())
		}
	});
	function showGoods(data) {
		let table = document.getElementsByTagName('tbody')[0];
		let tableAtr = table.getAttribute('data-category');
		let out = '';
		for(var i = 0; i < data.length; i++) {
			if (data[i]['gsx$category']['$t'] === tableAtr) {
				out += `<tr>`
				out += `<td>${data[i]['gsx$name']['$t']}</td> `
				out += `<td>${data[i]['gsx$sort']['$t']}</td> `
				out += `<td>${data[i]['gsx$opt']['$t']}</td> `
				out += `<td><span>0</span></td> `
				out += `<td>
							<span>
								<span>итог: </span>
								<span class="result">0.00</span> руб.
							</span>
							<button class="buy">В корзину</button>
						</td> `
				out += `</tr>`
			}
		}
		return out;
	}
});

рони 07.08.2019 18:24

l_mke,
строка 23 ?

l_mke 07.08.2019 18:45

Ну это я смотрел что функция покажет, так я и выяснил где ошибка

рони 07.08.2019 19:04

Цитата:

Сообщение от l_mke
Ну это я смотрел что функция покажет

почему функция без данных?

рони 07.08.2019 19:06

l_mke,
и может для начала выяснить что в data?

l_mke 07.08.2019 19:16

Понял, консолил не правильно, в data лежит масив с данными.

рони 07.08.2019 19:16

l_mke,
data = data['feed']['entry'];
			document.getElementsByTagName('table')[0].innerHTML = showGoods(data);
			console.log(showGoods(data))


Часовой пояс GMT +3, время: 21:32.