切换问题

ran*_*dev 1 javascript switch-statement

我有这个代码:

var str = $("#datepicker").datepicker("getDate");
    var datestr = str.toString().split(" ");
    switch(datestr[1]) {
        case "Jan":
        var datestrmon = "???";
        break;
        case "Feb":
        var datestrmon = "???";
        break;
        case "Mar":
        var datestrmon = "???";
        break;
        case "Apr":
        var datestrmon = "???";
        break;
        case "May":
        var datestrmon = "???";
        break;
        case "Jun":
        var datestrmon = "???";
        break;
        case "July":
        var datestrmon = "???";
        break;
        case "Aug":
        var datestrmon = "???";
        break;
        case "Sep":
        var datestrmon = "???";
        break;
        case "Oct":
        var datestrmon = "???";
        break;
        case "Nov":
        var datestrmon = "???";
        break;
        case "Dec":
        var datestrmon = "???";
        break;
        default:
        datestr[1];
    }
    alert(datestrmon);
Run Code Online (Sandbox Code Playgroud)

我希望当浏览器提醒我的日期警报提醒"Юли"时,它会提醒我"未定义".为什么?

ken*_*ytm 5

  1. 你确定它是"七月"而不是"七月"吗?
  2. 你的default:案子没有分配datestr[1]datestrmon.这是故意的吗?

无论如何,考虑使用查找表而不是大开关.

var datestrmon = ({"Jan": "???",
                   "Feb": "???",
                   ...
                   "Dec": "???"})[datestr[1]] || datestr[1];
//                                            ^^^^^^^^^^^^^
//                                            optional, if you think stuff outside of
//                                            the table could appear and need a
//                                            fallback.
Run Code Online (Sandbox Code Playgroud)