crazy_str
@crazy_str
web-программист

Как сделать аналог foreach и isset на javascript?

На PHP я делаю так
if ( isset ( $api[$i]["attachments"] ) ) {

				foreach ( $api[$i]["attachments"] as $attacment ) {

					switch( $attacment["type"] ) {

						case "photo": $modal .= "<br /><img src=\"{$attacment["photo"]["photo_604"]}\" alt=\"\" title=\"\" align=\"center\">"; break;
						case "audio": $modal .= "<audio src=\"{$attacment["audio"]["url"]}\" controls></audio><i class=\"fa fa-music fa-3x\"></i>"; break;

					}

				}

			}

а как тоже самое сделать на Javascript?
  • Вопрос задан
  • 481 просмотр
Пригласить эксперта
Ответы на вопрос 4
@maxyc_webber
Web-программист
согласитесь так быстрее

yandex.ru/yandsearch?text=javascript%20foreach
yandex.ru/yandsearch?text=javascript%20isset

нужно лишь чутка изредка включать голову
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
if (api.hasOwnProperty('attachmens') && Array.isArray(api.attachments)) {
    api.attachments.forEach(function (attacment) {
    
    });
}


Но судя по примеру кода который вы предоставили - подумайте в сторону использования шаблонов на клиенте. Жить будет проще.

И да, и в PHP и в JS свитч можно заменить простым ассоциативным массивом. И код будет проще поддерживать, и разрастаться он не будет.

var tpl = {
    photo: ''tpl for photo,
    audio: 'some other tpl'
};
Ответ написан
Комментировать
@IceJOKER
Web/Android developer
var arr = [1, "two", 3, "four"]; //array

for(i in arr){
  if(arr[i]) alert(arr[i])
}
Ответ написан
Комментировать
как-то так
var i;
if (attachments != undefined) {
    for (i in attachments) {
        switch (attachments[i].type) {
        }
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы