加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby case-when vs JavaScript switch-case

发布时间:2020-12-17 02:50:00 所属栏目:百科 来源:网络整理
导读:我来自 Ruby世界并进入 JavaScript世界. Ruby语言的一个特性是用于评估目标值的case语句: my_val = case my_var when "var1" then "value1" when "var2" then "value2" else "value3" end# my_val evaluated to a specific value puts my_val 我可以像上面
我来自 Ruby世界并进入 JavaScript世界. Ruby语言的一个特性是用于评估目标值的case语句:

my_val = case my_var
           when "var1" then "value1"
           when "var2" then "value2"
           else "value3"
         end

# my_val evaluated to a specific value 
puts my_val

我可以像上面那样在JavaScript中做一些简洁的事吗?这是我得到的最接近的:

let myVal = null;
switch (myVar) {
  case "var1": 
    myVal = "value1";
    break;
  case "var2":
    myVal = "value2";
    break;
  default:
    myVal = "value3";
}

// my_val evaluated to a specific value 
console.log(myVal);

解决方法

您可以使用具有三元组的对象来设置默认值,如下所示:

const obj = {
  "var1":"value1","var2":"value2","defaultVal": "value3" // default value
},getVal = sVar => sVar in obj ? obj[sVar] : obj["defaultVal"];

// Use case 1:
console.log(getVal("var1")); // get "var1" from the object

// Use case 2:
console.log(getVal("foo")); // get "foo" from the object,doesn't exsist,so we get the fault value

上面创建了一个对象,其中对象中的每个键都指向一个值(即myVar应该变成什么).如果myVar不在对象中,它将默认为defaultVal,如果它在对象中,它将检索关联的值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读