【问题标题】:JavaScript switch-case statement range [duplicate]JavaScript switch-case语句范围[重复]
【发布时间】:2017-05-19 16:51:12
【问题描述】:
// WORKING CODE [CODE1]
$('.enter-button').on('click', function (e) {
    e.preventDefault();
    var searchValue     = $('.a').val();
    var listOfLocations = $('.b').text().trim();
    var listSize        = $('.b ul li').size();
    if (listOfLocations.indexOf(searchValue) === -1) {
        switch (listSize) {
            case 0:
            case 1:
                $('.list-left').append('<li>' + searchValue + '</li>');
                break;

            case 2:
            case 3:
                $('.list-right').append('<li>' + searchValue + '</li>');
                break;
        }
    }
});

但我希望它这样做:

// CODE THAT I WANT IT TO RUN [CODE2]
$('.enter-button').on('click', function (e) {
    e.preventDefault();
    var searchValue     = $('.a').val();
    var listOfLocations = $('.b').text().trim();
    var listSize        = $('.b ul li').size();
    if (listOfLocations.indexOf(searchValue) === -1) {
        switch (listSize) {
            case (listSize <= 2):
                $('.list-left').append('<li>' + searchValue + '</li>');
                break;

            case (listSize >= 3):
                $('.list-right').append('<li>' + searchValue + '</li>');
                break;
        }
    }
});

基本上我想在我的 switch 语句上运行一个范围案例,我查看了其他堆栈溢出问题,他们说要像代码 2 那样做。我无法让它工作,所以我正在尝试寻求帮助!除此之外,我也很好奇为什么 case 语句不像 CODE2 那样读取它。

【问题讨论】:

  • 你能链接推荐类似case (listSize &lt;= 2)的答案吗?
  • 你真的想要switch case吗?在这里更合适的 if/else 不能用吗?
  • 为什么你想让 switch case 以这种方式工作?使用简单的 if "else if" 阶梯。
  • 他们说过要像代码 2 那样做。 不,他们没有。仔细阅读。他们使用switch (true)

标签: javascript jquery switch-statement range


【解决方案1】:

看起来你有一个根据大小选择左或右的条件,你可以分成这样:

$('.list-' + ( listSize <=2 ? 'left' : 'right') ).append('<li>' + searchValue + '</li>');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多