Как добавить If ... Другие операторы в JSX без оператора 2 if? - PullRequest
0 голосов
/ 16 мая 2018

У меня есть два оператора if, написанные в ReactJS.

if (videoUrl !== undefined && videoUrl !== null && videoUrl.indexOf('youtube') !== -1) 
{
   videoUrl = videoUrl.replace("watch?v=", "embed/")
}
if (videoUrl !== undefined && videoUrl !== null && videoUrl.indexOf('vimeo') !== -1) 
{
   videoUrl = videoUrl.replace("https://vimeo.com/", "https://player.vimeo.com/video/")
}

Я не знаю, как сделать эти операторы if else, поэтому он может проверять между youtube или Vimeo.Прямо сейчас я могу использовать только один оператор if.Если я оставлю оба оператора if на месте, один первый, если работает.

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

Вам не нужно много, если, просто проверьте строку

let videoUrl = 'https://vimeo.com/';
if (typeof videoUrl === 'string') {

  if(videoUrl.indexOf('youtube') !== -1) {
     videoUrl = videoUrl.replace("watch?v=", "embed/");
   }
   if (videoUrl.indexOf('vimeo') !== -1) {
     videoUrl = videoUrl.replace("https://vimeo.com/", "https://player.vimeo.com/video/");
   }
}

console.log(videoUrl);

// Another option is to use regex
videoUrl = 'https://vimeo.com/';
if (/youtube/.test(videoUrl)) {
   videoUrl = videoUrl.replace("watch?v=", "embed/");
}
if (/vimeo/.test(videoUrl)) {
  videoUrl = videoUrl.replace("https://vimeo.com/", "https://player.vimeo.com/video/");
}
console.log(videoUrl);
0 голосов
/ 16 мая 2018

Я бы написал так:

if (typeof videoUrl !== 'undefined' && videoUrl) {
  if (videoUrl.indexOf('youtube') !== -1) {
    //first case here
  } else if (videoUrl.indexOf('vimeo') !== -1){
    //second case here
  }
}
0 голосов
/ 16 мая 2018

Просто так:

if (videoUrl !== undefined && videoUrl !== null)
{
    if (videoUrl.indexOf('youtube') !== -1) {
        videoUrl = videoUrl.replace("watch?v=", "embed/")
    }
    else if (videoUrl.indexOf('vimeo') !== -1) {
        videoUrl = videoUrl.replace("https://vimeo.com/", "https://player.vimeo.com/video/")
    }
}

Это удаляет дубликаты чеков, и их легче читать. Вы не можете легко сделать это с одним if, если вы не играете в игры с оператором ?:.

На самом деле, давайте играть в игры!

videoUrl = (videoUrl !== undefined && videoUrl !== null) ?
              (videoUrl.indexOf('youtube') !== -1) ? 
                  videoUrl.replace("watch?v=", "embed/") :
                  (videoUrl.indexOf('vimeo') !== -1) ?
                      videoUrl.replace("https://vimeo.com/", "https://player.vimeo.com/video/") :
                  null :
               null;

Или что-то в этом роде - теперь , что не читается!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...