RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1097013
Accepted
Marina
Marina
Asked:2020-03-20 03:53:14 +0000 UTC2020-03-20 03:53:14 +0000 UTC 2020-03-20 03:53:14 +0000 UTC

在星期几的名称之间找到一个中间值

  • 772

请告诉我如何在星期几的缩写之间找到星期的值:

Что-бы для SUN-WED получить SUN,MON,TUE,WED
или для MON-FRI получить MON,TUE,WED,FRI.

UPD:我的版本

function getWeekDays(start, end) {
  let newarr = [];
  let week = ['SUN', 'MON', 'TUE', 'WED', 'THUR', 'FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THUR', 'FRI', 'SAT'];
  let a = week.indexOf(start);

    for (let i = 0; i < week.length; i++) {
      if (i >= a) {
        newarr.push(week[i])
        if (week[i] === end) {
          break;
        }
      }
    }
}

getWeekDays('SAT', 'MON');
javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Denis640Kb
    2020-03-20T04:27:37Z2020-03-20T04:27:37Z

    您在第二个选项中错过了星期四。

    玛丽娜,由于这不是您第一次使用社区的帮助stackoverflow,您应该明白这不是一个按需任务的门户。
    就像那样,没有人会为您执行任务,您了解他们在这里提供帮助,而不是为您做。

    以后,尽量确保自己尝试完成任务,这样就没有缺点,而且更有可能给你一个快速而正确的答案。

    添加了注释,以便了解它是如何工作的。

    let days = ['MON','TUE','WED','THU','FRI','SAT','SUN'];
    
    let range = 'SUN-WED';
    let range1 = 'MON-FRI';
    
    function getRange(val) { // Объявляем функцию, которая принимает строку.
        let days1 = val.split('-'); // Разбиваем строку по -
        let dayFrom = days.indexOf(days1[0]); // Получаем индекс первого элемента в общем массиве дней
        let dayTo = days.indexOf(days1[1]); // Получаем индекс второго элемента в общем массиве дней
        let result = ''; // Сюда будем записывать результат
    
        if (dayTo<dayFrom){ // Если индекс второго параметра меньше первого, тогда...
            for(let i=dayFrom;i<days.length;i++){ // Делаем перебор с индекса первого параметра до конца массива дней(Чтобы попали все дни, даже, если они, например с пятницы по вторник)
                if(result){ // Если есть запись в строке результата то...
                    result += '-'+days[i]; // ставим тире перед следующим параметром и добавляем его
                } else { // Если записи нет, то...
                    result += days[i]; // Просто добавляем параметр
                }
            }
            for(let i1=0;i1<=dayTo;i1++){ // После того, как мы записали все дни с начала до воскреснья, нам необходимо записать остальные дни с понедельника до указанного параметра. Перебираем массив дней от 0 до индекса второго параметра
                if(result) { // Если есть запись в строке результата то...
                    result += '-'+days[i1]; // ставим тире перед следующим параметром и добавляем его
                } else { // Если записи нет, то...
                    result += days[i1];// Просто добавляем параметр
                }
            }
        } else { // Если же индекс второго параметра больше первого индекса, то...
            for(let i2=dayFrom;i2<=dayTo;i2++){ // Перебираем массив с индекса начала до индекса конца включительно
                if(result) { // Если есть запись в строке результата то...
                    result += '-'+days[i2]; // ставим тире перед следующим параметром и добавляем его
                } else { // Если записи нет, то...
                    result += days[i2]; // Просто добавляем параметр
                }
            }
        }
        return result; // Возвращаем из функции строку результата
    }
    console.log(getRange(range)); // Запускаем функцию и выводим результат в консоль.
    console.log(getRange(range1)); // Запускаем функцию и выводим результат в консоль.

    或者,如果没有解释并缩短代码:

        let days = ['MON','TUE','WED','THU','FRI','SAT','SUN'];
        let range = 'SUN-WED';
        function getRange(val) {
            let days1 = val.split('-');
            if (days.indexOf(days1[1])<days.indexOf(days1[0])){
                return days.slice(days.indexOf(days1[0]), days.length).join('-')+'-'+days.slice(0, days.indexOf(days1[1])+1).join('-');
            } else {
                return days.slice(days.indexOf(days1[0]), days.indexOf(days1[1])+1).join('-');
            }
        }
        console.log(getRange(range));

    • 1

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5