Проблемы с условием IF

#javascript #ajax #api

#javascript #ajax #API

Вопрос:

Я пытаюсь создать веб-сайт, который собирает информацию из API. Следующий код всегда оценивается как «Звуковой сигнал, звуковой сигнал! Я не могу найти страницу Википедии с API ! 🙁 В любом случае, здесь больше информации о … ‘! У кого-нибудь есть идеи, почему?

                 var geoNamesWiki = result.geoNamesWiki;
                for (let j = 0; j < 30; j  ) {
                    if (geoNamesWiki.geonames[j].feature == 'country' amp;amp;
                        (geoNamesWiki.geonames[j].countryCode == openCage.results[0].components["ISO_3166-1_alpha-2"] ||
                            geoNamesWiki.geonames[j].title.includes(openCage.results[0].components.country))) {
                        $('#summary').html(geoNamesWiki.geonames[j].summary);
                        $('#wikiLink').html(geoNamesWiki.geonames[j].wikipediaUrl).attr("href", "https://"   geoNamesWiki.geonames[j].wikipediaUrl);
                    } else {
                        $('#summary').html('Beep Boop Beep! I cant find the wikipedia page with the API! :-( n Anyways here is more info on'   openCage.results[0].components.country   ':');
                        $('#wikiLink').html('https://en.wikipedia.org/wiki/'   encodeURI(openCage.results[0].components.country)).attr("href", 'https://en.wikipedia.org/wiki/'   encodeURI(openCage.results[0].components.country));
                    }
                }
 

Комментарии:

1. Какова ценность geoNamesWiki ?

2. geoNamesWiki — это массив json из 30 записей с информацией для каждой страны, возвращаемой GeoNames, который можно найти здесь: api.geonames.org /…

3. Также, когда я удаляю часть ‘else’ этого оператора, он работает нормально. Это должно помочь, когда GeoNames не может найти запись в Википедии (по какой-то причине он не может найти запись в вики для Испании ?! Но в большинстве других стран все в порядке)

Ответ №1:

Есть подозрение, что у вас есть строка var geoNamesWiki = result.geoNamesWiki; , попробуйте сначала проанализировать ее в объект JSON var geoNamesWiki = JSON.parse( result.geoNamesWiki );

Комментарии:

1. Это уже объект JSON, как только он доходит до этой стадии

2. Тогда есть вероятность, что вы перезаписываете все, что было оценено до сих пор, с помощью финала условия else.

3. @LauraElizabeth так это было else условие, перезаписывающее все ранее найденное, не так ли? : D

Ответ №2:

Я нашел ответ благодаря @Bekim Bacaj! Я перезаписывал то, что уже сделал, поэтому просто нужно было добавить разрыв в последней строке части IF.