javascript - 如何在 JSX 中添加 If...Else 语句而不需要 2 个 if 语句?

标签 javascript reactjs redux jsx

我有两个用 ReactJS 编写的 if 语句。

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 语句都保留在该位置,则第一个 if 有效。

最佳答案

不需要那么多 if,只需检查字符串

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);

关于javascript - 如何在 JSX 中添加 If...Else 语句而不需要 2 个 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50361231/

相关文章:

javascript - 如何检查数组中的id是否出现在另一个数组中,然后将其推送到新数组

javascript - 将 SCSS 变量导出到 JS(自动循环变量)

javascript - 单向 ElGamal 代理重新加密实现

javascript - 使用 Redux 在调度内传递许多 props

javascript - JQuery:包装变量的内容

javascript - 未找到 Webpack block

javascript - 如何使用 token 而不是 azure 连接字符串进行 blob 存储访问

javascript - 从通过链接检索的数据修改 setState

reactjs - 何时使用React Hooks

javascript - Redux 状态下的条件函数