Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript算法只显示4个月_Javascript_Algorithm - Fatal编程技术网

Javascript算法只显示4个月

Javascript算法只显示4个月,javascript,algorithm,Javascript,Algorithm,我无法显示一年中正确的月份。问题是这几个月并没有互相跟进。我似乎不能把算法弄对 我现在面临的问题是,月份之间没有正确地相互跟进。与其用“一月-二月-三月-十二月”,不如用“十二月-一月-二月-三月”: 这就是我在这一点上的算法。当月份在不同的年份重叠时,我不知道如何将月份按正确的顺序排列。新年月份是阵列开始时的月份: visibleMonths() { let oldestMonth = 0; this.months.forEach(month => {

我无法显示一年中正确的月份。问题是这几个月并没有互相跟进。我似乎不能把算法弄对

我现在面临的问题是,月份之间没有正确地相互跟进。与其用“一月-二月-三月-十二月”,不如用“十二月-一月-二月-三月”:

这就是我在这一点上的算法。当月份在不同的年份重叠时,我不知道如何将月份按正确的顺序排列。新年月份是阵列开始时的月份:

   visibleMonths() {
      let oldestMonth = 0;
      this.months.forEach(month => {
        if (month.visible && month.value > oldestMonth)
          oldestMonth = month.value;
      });
      if (oldestMonth + 4 > 11) {
          let visibleMonths = [];
        // ORDER THE MONTHS 
      } else {
        return this.months.filter(month => month.visible === true);
      }
    }

您只需移动源数组并将其附加到临时数组中,然后您就可以对临时数组进行切片:

const月=[
{name:“Jan”,值:0,活动:false,可见:false},
{name:“Feb”,值:1,活动:false,可见:false},
{name:“Mar”,值:2,活动:false,可见:false},
{name:“Apr”,值:3,活动:false,可见:false},
{name:“Mei”,值:4,活动:false,可见:false},
{名称:“Jun”,值:5,活动:false,可见:false},
{name:“jul”,值:6,活动:false,可见:false},
{name:“Aug”,值:7,活动:false,可见:false},
{name:“Sep”,值:8,活动:false,可见:false},
{name:“Okt”,值:9,活动:false,可见:false},
{name:“Nov”,值:10,活动:false,可见:false},
{name:“Dec”,值:11,活动:false,可见:false}
]
const currentMonthIndex=new Date().getMonth()
函数getVisibleMonths(月,currentMonthIndex){
常数tmp=[…个月]
常数res=[]
对于(i=0;iconsole.log(getVisibleMonths(months,currentMonthIndex))
您能提供您的
months
数组吗?对不起,我忘了添加数组。您想有一个月的轮换列表吗?在这种情况下,始终将所有月份固定在一个固定阵列中并切换可见性将不起作用,因为月份从1月到12月将始终保持顺序。获得一个只包含可见蛾的新阵列是有效的选项吗?在这种情况下,我可以提供一个简单的方法(请不要称之为“算法”,这是一个大词;)。我使用的是Vue。此函数位于计算的vue函数内。所以这是一个新的数组。如果你想换行,就不要在这个数组中只有几个月的时间。生成年-月组合。按年按月订购。
months: [
        { name: "Jan", value: 0, active: false, visible: false },
        { name: "Feb", value: 1, active: false, visible: false },
        { name: "Mar", value: 2, active: false, visible: false },
        { name: "Apr", value: 3, active: false, visible: false },
        { name: "Mei", value: 4, active: false, visible: false },
        { name: "Jun", value: 5, active: false, visible: false },
        { name: "jul", value: 6, active: false, visible: false },
        { name: "Aug", value: 7, active: false, visible: false },
        { name: "Sep", value: 8, active: false, visible: false },
        { name: "Okt", value: 9, active: false, visible: false },
        { name: "Nov", value: 10, active: false, visible: false },
        { name: "Dec", value: 11, active: false, visible: false }
      ],