Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
152 views
in Technique[技术] by (71.8m points)

关于匹配多项

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
  <script>
    switch ("中雪") {
      case "晴" || "小雪转晴" || "多云转晴" || "阵雪转晴" || "阴转晴" || "扬沙转晴" || "浮尘转晴" || "阵雨转晴" || "小雨转晴" || "雨夹雪转晴" || "多云转扬沙" || "晴转扬沙":
        console.log(1)
        break;
      case "阴" || "多云" || "雾" || "扬沙" || "霾" || "浮尘" || "晴转多云" || "多云转阴" || "晴转阴" || "阴转多云" || "小雪转多云" || "小雨转多云" || "阵雨转多云" || "小雪转阴" || "阵雪转阴" || "扬沙转多云" || "小雨转阴" || "中雨转多云" || "雾转多云" || "中雨转阴" || "阵雨转阴" || "雨夹雪转多云" || "小到中雨转阴" || "雨夹雪转阴" || "多云转雾" || "中雪转多云" || "雷阵雨转多云" || "扬沙转阴" || "浮尘转霾" || "晴转霾" || "霾转阴" || "霾转多云" || "霾转晴" || "小到中雪转多云" || "大雪转多云" || "大雨转阴" || "浮尘转多云" || "多云转霾" || "晴转雾" || "阴转雾":
        $console.log(2)
        break;
      case "小雪" || "中雪" || "大雪" || "多云转雨夹雪" || "阴转小雪" || "阵雪转多云" || "阴转阵雪" || "多云转中雪" || "晴转中雪" || "多云转大雪" || "阴转中雪" || "阴转大雪" || "雨夹雪转小雪" || "小雨转大雪" || "雨夹雪转大雪" || "雨夹雪转中雪" || "晴转大雪" || "小雪转阵雪" || "小雪转中雪" || "多云转小到中雪" || "大雪转小雪" || "中雨转中雪" || "中雪转小雪" || "小雨转中雪" || "阵雨转小雪" || "小雨转小雪" || "小雨转阵雪" || "阵雪转小雪" || "晴转阵雪" || "晴转小雪" || "多云转小雪" || "中雨转小雪" || "阵雪" || "暴雪" || "多云转阵雪":
        console.log(3)
        break;
      case "雨夹雪" || "小雨" || "小雪转雨夹雪" || "中雨" || "阵雨" || "大雨" || "多云转小雨" || "多云转阵雨" || "晴转雨夹雪" || "阴转小雨" || "小雨转中雨" || "中雨转小雨" || "阴转中雨" || "多云转中雨" || "小雨转大雨" || "阵雨转中雨" || "阵雨转大雨" || "阴转大雨" || "阵雨转小雨" || "晴转小雨" || "多云转大雨" || "小雨转暴雨" || "阵雨转中到大雨" || "小雨转阵雨" || "阴转阵雨" || "小雨转小到中雨" || "小到中雨转小雨" || "晴转阵雨" || "中雨转阵雨" || "小雨转雨夹雪" || "阴转雨夹雪" || "中雨转大雨" || "阵雨转雨夹雪" || "多云转小到中雨" || "小到中雨" || "小到中雨转阵雨" || "雷阵雨转阵雨" || "雨夹雪转小雨":
        console.log(4)
        break;
      // case "暴雨" || "雷阵雨" || "大暴雨" || "阵雨转雷阵雨" || "晴转雷阵雨":
      //   console.log(5)
      //   break;
      default:
        console.log(5)
    }
  </script>
</body>

</html>

可能标题表述的不是太清楚,可代码您可能会理解我的需求
就是当匹配一个值的时候,打印不同的console
但是目前问题在于我的匹配条件有多个,是通过||进行分割
经测试此写法无效
我已知indexof可以解决此需求,但总感觉书写出来不满意
还望指点有没有更好的办法,谢谢!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
let result = null;
let str = "雪";
let config = {
    1: ["雨", "雪"]
};

for(let key in config){
    result = result ? result : config[key].includes(str) && key;
}

console.log(result)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...