javascript switch语句/ case表达式

时间:2016-04-08 07:30:48

标签: javascript angularjs

我正在使用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。它有效吗?

4 个答案:

答案 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';

如果itemundefinednull,则会为该特定项目指定值。

<强> P.S。这是用于检查null或undefined,并且比使用switch

更好