我想在if结构的javascript“ indexOf ”函数中的不同选项之间进行选择。解决它的最好方法是什么? 此示例不起作用:
if( str.indexOf( "twitter" || "facebook" || "youtube")!=-1 ){
//my code goes here
}
我们可以使用此代码来工作 但这并不理想...
var str =“我在Facebook上的个人资料”; 如果(str.indexOf(“ twitter”)!=-1 || str.indexOf(“ youtube”)!=-1 || str.indexOf(“ facebook”)!=-1){//代码继续 这里}
答案 0 :(得分:0)
我建议为此使用一个函数。
function contains(str, substring) {
return str.indexOf(substring) > -1;
}
if(contains(str, "twitter") || contains(str, "facebook") || contains(str, "youtube")) {
// your code here
}
或者,如果您希望在编程时更加简洁,请使用以下代码:
function containsAny(str) {
return Array.prototype.slice.call(arguments)
.slice(1)
.some(function(substring) {
return str.indexOf(substring) > -1
});
}
if(containsAny(str, "twitter", "facebook", "youtube")) {
// your code here
}
编辑:关于需要较少代码的问题,使用ES6,您可以执行以下操作:
const containsAny = (str, ...args) => [...args].slice(1).some(s => str.indexOf(s) > -1)
答案 1 :(得分:0)
如果我正确理解了您要寻找的内容,则可以采取以下解决方案:
if( str.indexOf( "twitter")!=-1 || str.indexOf( "facebook")!=-1 || str.indexOf( "youtube")!=-1 ){ //my code goes here }
答案 2 :(得分:-1)
尝试这样...
var media = ["twitter", "facebook", "youtube"];
if(media.includes(str) {
//your code
}