我有两个用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语句,那么首先是有效的。
答案 0 :(得分:2)
如果只是检查字符串
,你就不需要那么多
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);

答案 1 :(得分:1)
只是这个:
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;
或类似的东西 - 现在 是不可读的!
答案 2 :(得分:0)
我会写如下:
if (typeof videoUrl !== 'undefined' && videoUrl) {
if (videoUrl.indexOf('youtube') !== -1) {
//first case here
} else if (videoUrl.indexOf('vimeo') !== -1){
//second case here
}
}