У меня есть массив с именем countryData , в котором хранятся имена для разных стран, например:
[Germany,France,Canada,Austria,Switzerland,Spain]
Я пытаюсь перебрать каждый элемент в этом массиве, идея состоит в том,используйте каждую страну в поиске запроса по внешнему API, а затем сохраните длину элементов в этом внешнем API.Проще говоря, я прохожу каждую страну и подсчитываю, сколько предметов из этой страны хранится во внешней базе данных.
У меня нет проблем с доступом к базе данных вне цикла, однако я не могу получить доступэто пока внутри итератора for. Это мой код:
for (var iter = 0; iter < countriesData.length; iter++) {
var obj = [];
var country = countriesData[iter]
var items;
var itemsCountry = 0;
$http.get("https://api.discogs.com/database/search?q={?country==" + country + " }&token=zwxZExVZTenjPTKumVeTDVRuniqhQLAxymdzSxUQ").then(function(response) {
items = response.data.pagination.items;
})
var str = "";
obj.push(countriesData[iter]);
obj.push(items);
for (var J = 0; J < myStats.data.length; J++) {
if (myStats.data[J].country == countriesData[iter]) {
itemsCountry++;
str += myStats.data[J].title + ", ";
}
}
obj.push(itemsCountry);
var str2 = str.substring(0, str.length - 2);
obj.push(str2);
newData.push(obj);
console.log("new obj : " + obj)
}
По сути, мне нужно обновить var items в соответствии с длиной данных ответа от http.get Это пример того, что я получаю, как только я console.log obj:
France,,2,Thriller, D'eux
Как вы можете видеть, второй элемент в массиве пуст, когда он должен был быть целым числомпредставляющий, сколько связанных с Францией предметов было найдено в базе данных ... Что я делаю не так?Я понимаю, что база данных велика, и для ее загрузки может не хватить времени.Любая идея?
Заранее спасибо:)