Я довольно новичок в javascript и jquery. В настоящее время у меня есть xml-файл, который я пытаюсь проанализировать с помощью jquery и javascript, но по какой-то причине значения, хранящиеся в массиве, не сохраняются.Значения не сохраняются в массиве
var categories = new Array(); // Array for the categories
var data = {
categories: []
};
var sources = [
{
src:'',
title: '',
desc: ''
}];
var i = 0;
$.get('fakeFeed.xml', function (info) {
$(info).find("item").each(function() {
var el = $(this);
var categoryName = el.find('category').text();
var p = categories.indexOf(categoryName);
sources[i] = [];
sources[i].src = el.find('media\\:content, content').attr('url');
sources[i].title = el.find("title").text();
sources[i].desc = 'Moscone Center';
if(p == -1) {
categories.push(categoryName);
var category = {
name: categoryName,
videos: []
};
}
i++;
});
});
Если я делать console.log (категории) печатает все категории на массиве, но если я console.log (categories.length) я получаю 0 ...
console.log(categories.length); // This should be outputting 5 but I keep getting 0 for the size.
for (var i=0; i<categories.length; i++) {
var category = {
name: categories[i],
videos: []
};
}
Я ценю любую помощь, которую может дать любой человек. Спасибо
Спасибо! так что вы говорите, что другие части кода могут закончиться до того, как функция $ .get завершит цикл? – aafonso1991
Да. Поскольку код внутри 'function (info) {...}' вы проходите, то внутри внутри функции этот код выполняется всякий раз, когда '$ .get' считает нужным. Функция обратного вызова может даже не выполняться, если запрос GET в файл XML не удался. –