如何使用switch语句执行此类操作:
String.prototype.startsWith = function( str ){
return ( this.indexOf( str ) === 0 );
}
switch( myVar ) {
case myVar.startsWith( 'product' ):
// do something
break;
}
这相当于:
if ( myVar.startsWith( 'product' )) {}
答案 0 :(得分:7)
你可以这样做,但这不是switch
命令的逻辑用法:
String.prototype.startsWith = function( str ){
return ( this.indexOf( str ) === 0 );
};
var myVar = 'product 42';
switch (true) {
case myVar.startsWith( 'product' ):
alert(1); // do something
break;
}
答案 1 :(得分:0)
像这样: -
var x="product";
switch({"product":1, "help":2}[x]){
case 1:alert("product");
break;
case 2:alert("Help");
break;
};
答案 2 :(得分:0)
您可以执行this:
之类的操作BEGINNING = 0;
MIDDLE = 1;
END = 2;
NO_WHERE = -1;
String.prototype.positionOfString = function(str) {
var idx = this.indexOf(str);
if (idx === 0) return BEGINNING;
if (idx > 0 && idx + str.length === this.length) return END;
if (idx > 0) return MIDDLE;
else return NO_WHERE;
};
var myVar = ' product';
switch (myVar.positionOfString('product')) {
case BEGINNING:
alert('beginning'); // do something
break;
case MIDDLE:
alert('middle');
break;
case END:
alert('END');
break;
default:
alert('nope');
break;
}
答案 3 :(得分:0)
通过添加ternary operator的最佳方法,请尝试使用此方法应该可以完美运行
var bg = $('.bg');
// check-box value decide background-color.
$(document).on('click', "div[name='in_out']", function(event){
var v = $("div[name='in_out'] div input:checked").attr('data-value');
if (v =='O') {
bg.css("background-color","#adff2f");
}
else if(v =='I') {
bg.css("background-color","#ffc0cb");
}
});
var myVar = 'product 42';
switch (myVar) {
case myVar.startsWith('product') ? myVar : '' :
alert(1); // do something
break;
}