2016-10-21 4 views
2

Я пытаюсь пропустить содержимое массива в Jquery, массив содержит список Place Names, за которым следует URL ([0] name, [1] url, [2] name [3 ] url и т. д.). Данные для географических названий были вытащены через API, и некоторые из них не определены. Ниже мой цикл в текущей итерации.JACKery array loop

 for (var i=0; i<albums.length; i++){ 
      if ((albums[i] != "undefined") && (albums[i+1].indexOf("http") !== 1)){ 
       $("#thumbnail").css("overflow:", "auto"); 
       $("#thumbnail").css("max-height:", "100px"); 
       $("#thumbview").append('<div id="thumbnail"><img src='+[i+1]+' id="coverPhoto" height="320" width="420"></a></div>'); 
      } 
      i++; 
     };  

Ниже массив, как он структурирован в настоящее время

Array [14]

[0]: "название места" [1]: "HTTPS:/... "[2]:" location name "[3]:" https:/... "[4]:" location name "[5]:" https:/... "[6]:" location название "[7]:" HTTPS:/... "[8]: не определено [9]:" HTTPS:/... "[10]: не определено [11]:" HTTPS:/... "[12 ]: «название местоположения» [13]: «https:/...»

Моя цель для цикла - проверить [i], если [i] НЕ определено, тогда проверьте [i + 1], чтобы увидеть, содержит ли он «http», если оба условия истинны> постройте изображение с помощью источник из массива, и укажите имя и подпись в качестве имени местоположения.

В своей текущей итерации он, похоже, работает некорректно, он просто выполняет итерацию и строит div независимо от того, является ли имя неопределенным или нет.

Любая помощь будет высоко оценена.

+0

'я + 1' будет вызывать проблемы в 'last-итерации'. – Rayon

+0

Можете ли вы рассказать следующее: структуру массива, ввод, вывод? – gurvinder372

ответ

4

Вы на самом деле проверяете, соответствует ли содержание альбомов [i] строке без указания. Вы должны проверить, не указано ли содержимое альбомов [i]. Вы также должны использовать операторы ===/!==. Если вы хотите проверить, если переменная равна нулю, вы должны затем проверить, если albums[i] === null или albums[i] !== null

albums[i] != "undefined" =>albums[i] !== undefined

Вот ваш цикл:

for (var i = 0; i < albums.length; i++){ 
    if ((albums[i] !== undefined) && (albums[i+1].indexOf("http") !== 1)){ 
     $("#thumbnail").css("overflow:", "auto"); 
     $("#thumbnail").css("max-height:", "100px"); 
     $("#thumbview").append('<div id="thumbnail"><img src=' + [i+1] + ' id="coverPhoto" height="320" width="420"></a></div>'); 
    }; 
}; 
+1

IMO, 'альбомы [i]! ==" undefined "' – Rayon

+1

@ Jean-Paul_Goodwin, Есть еще двойной прирост справа? 'for (var i = 0; i <альбомы.length; i ++) {' и 'i ++;' или это не так? – Roy123

+1

@Roy_Dorsthorst Да, я просто удалил его. Код будет работать лучше и не пропустить div –