#javascript #if-statement
#javascript #if-оператор
Вопрос:
Я нахожусь на пути к созданию web с помощью TMDB WebAPI, но я обнаружил, что они используют разные переменные для сериалов и фильмов в разделе «тренды», «использование на телевидении» name
и «использование в кино» title
, так что это будет неопределенный параметр. Для такого новичка, как я, я выбираю использовать условие if else в функции с возвращаемым значением, но, похоже, оно все еще не работает.
const renderTrending = (results) => {
const listTrendingElement = document.querySelector("#trendingNow");
listTrendingElement.innerHTML = "";
results.forEach(result => {
const combine;
function _combine(){
if(result.name===undefined){
return combine = result.title;
} else {
return combine = result.name;
}
}
_combine();
listTrendingElement.innerHTML = `
<div class="col-2">
<div class="card">
<img class="card-img-top" src="${posterTMDB}w185${result.poster_path}" alt="Poster">
<div class="card-body">
<h5 class="card-title">${combine}</h5>
<div>
<!-- <span class="genre">${result.genre_ids}</span>-->
<span class="media-type">${result.media_type}</span>
</div>
</div>
</div>
</div>
`;
});
}
или, может быть, есть более эффективный способ сделать это?
Ответ №1:
Вы можете изменить функцию с помощью oneliner:
const combine = result.name || result.title;
Таким образом, если result.name возвращает правильное значение, combine получает его; но если result.name не определено, combine получает значение из result.title
Комментарии:
1. Это опасно:
||
проверяет наличие ложных значений тоже, не толькоundefined
. Оператор объединения null??
является лучшим выбором (хотя и не так широко поддерживается). В противном случае используйте вместо этого тернарный оператор:return result.name === undefined ? result.title : result.name
2. @Terry
name
поле должно быть строкой, поэтому я лично согласен с вашим инструктивным представлением, но логический оператор-or должен соответствовать цели без проблем в этом случае.3. @Terry по той же причине вам следует исправить свое предложение, чтобы предотвратить
null
также.4. да @MarioVernari это специфично для TMDB WebAPI, а не общий совет
5. спасибо, ребята, я узнаю о логическом операторе. хорошего дня!