首页 > 解决方案 > 如何将数组的一部分转移到新行?

问题描述

下午好,请告诉我,我有一个由数字组成的数组,如何将每个单元之前的数字后面的数组部分转移到新的一行?

我的应用程序.vue:

<template>
  <div id="app">
    <div class="mounth">{{ mounthDays }}</div>
  </div>
</template>

<script>
export default {
  name: 'app',
  data () {
    return {
        mounthDays: [],
    }
  },
  mounted() {
    for (var x = 0; x < 12; x++) {
      for (var i = 1; i <= 31; i++) {
        this.mounthDays.push(i)
      }
    }
    if(this.mounthDays[123] === 31){
      this.mounthDays.splice(59, 3)
      this.mounthDays.splice(120, 1)
      this.mounthDays.splice(181, 1)
      this.mounthDays.splice(273, 1)
      this.mounthDays.splice(334, 1)



    }
    console.log(this.mounthDays)

    }
  }
</script>

在此处输入图像描述

这就是我希望我的数组看起来的样子

标签: javascriptarraysloops

解决方案


与其拥有所有数字的数组,不如将其设为数组数组,然后将其打印在单独的行上。像这样的东西应该工作:

var monthsWithDays = [];

for (var x = 0; x < 12; x++) {
    var days = [];

    for (var i = 1; i <= 31; i++) {
        days.push(i)
    }

    monthsWithDays.push(days);
}

monthsWithDays.forEach(daysArray => console.log(daysArray));

如果你只想要一个带有换行符的字符串,那么这样的东西应该可以工作:

monthsWithDays.map(daysArray => daysArray.join(",")).join("\n")

编辑:我现在看到你想用你的splice东西做什么。我认为您在这里没有正确的方法。但是上面的代码可以被修复来做到这一点:

function daysInMonth (month, year) {
    return new Date(year, month, 0).getDate();
}

var monthsWithDays = [];

for (var x = 1; x <= 12; x++) {
    var days = [];

    for (var i = 1; i <= daysInMonth(x, 2019) ; i++) {
        days.push(i)
    }

    monthsWithDays.push(days);
}

monthsWithDays.map(daysArray => daysArray.join(",")).join("\n")

我从另一个问题这里借用了这个daysInMonth功能


推荐阅读