我正在使用switch语句来搜索未定义的值以手动更改它。但是我在使用布尔表达式时遇到了麻烦,就像使用if语句时一样。
喜欢: if statemant
Route::group(['prefix' => 'v1', 'middleware' => 'webapi'], function(){
Route::controller('webapi', 'WebApiController');
});
等。
我尝试使用开关语句:
if(Item1 == undefined)
{
item1 ="No";
}
else if (Item2 == undefined)
{
item2 = "No";
}
它不会在switch语句中运行,除非我删除 switch (array) {
case (item1 == undefined):
item1 = "No";
console.log('item1 result', item1 );
break;
case item2 == undefined:
item2 = "No";
console.log('item2 result', item2 );
break;
default:
}
并仅使用== undefined
。它有效吗?
答案 0 :(得分:2)
switch
无法像这样评估数组的值,这就是它不能通过switch语句运行的原因。您需要定义要切换的数组的值。
在Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", "default content");
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
内你也不能使用表达式,你也必须在那里使用一个值。
所以,如果你已经决定使用case statement
来完成你想要完成的任务,你可以这样做:
switch
但是,根据您的示例,您可能正在尝试检查值是否已设置,因为item1 = array[1];
switch(item1) {
case "undefined":
// so on
break;
}
语句仍然是最佳选择而不是切换。
if
答案 1 :(得分:0)
开关只能应用1个变量,如下所示:
switch (array) {
case 'undefined':
item1 = "No";
console.log('item1 result', item1 );
break;
case array.length:
item2 = "No";
console.log('item2 result', item2 );
break;
}
答案 2 :(得分:0)
for(var i=0;i<array.length;i++){
switch(array[i]) {
case "undefined":
//so on
break;
}
}
答案 3 :(得分:0)
读取函数的参数时很有用。
简短的方法就是
item1 = (item1 == null)? item1 : 'no';
item2 = (item2 == null)? item2 : 'no';
如果item
为undefined
或null
,则会为该特定项目指定值。
<强> P.S。这是用于检查null或undefined,并且比使用switch
更好