hasyrails / calendar-vue-original

0 stars 0 forks source link

07 schedule display try / 日付ごとに分割されたタスクデータ構造の定義 #16

Closed hasyrails closed 4 years ago

hasyrails commented 4 years ago

scheduleデータ →日付ごとに分割された新たなデータを定義する DevidedSchduleとする

hasyrails commented 4 years ago

ハードコーディングで実装

var DevidedSchedule = [];
      DevidedSchedule.push(
        [
          {
            title: this.schedules[0].title,
            color: this.schedules[0].color,
            commit: this.schedules[0].commit,
            date: dateArrays[0][0],
          },
          {
            title: this.schedules[0].title,
            color: this.schedules[0].color,
            commit: this.schedules[0].commit,
            date: dateArrays[0][1],
          },
          {
            title: this.schedules[0].title,
            color: this.schedules[0].color,
            commit: this.schedules[0].commit,
            date: dateArrays[0][2],
          },
          {
            title: this.schedules[0].title,
            color: this.schedules[0].color,
            commit: this.schedules[0].commit,
            date: dateArrays[0][3],
          },
          //  whileの繰り返し範囲でundifinedを回避する
          // {
          //   title: this.schedules[0].title,
          //   color: this.schedules[0].color,
          //   commit: this.schedules[0].commit,
          //   date: dateArrays[0][4],
          // },
        ],
        [
          {
            title: this.schedules[1].title,
            color: this.schedules[1].color,
            commit: this.schedules[1].commit,
            date: dateArrays[1][0],
          },
          {
            title: this.schedules[1].title,
            color: this.schedules[1].color,
            commit: this.schedules[1].commit,
            date: dateArrays[1][1],
          },
          {
            title: this.schedules[1].title,
            color: this.schedules[1].color,
            commit: this.schedules[1].commit,
            date: dateArrays[1][2],
          },
          {
            title: this.schedules[1].title,
            color: this.schedules[1].color,
            commit: this.schedules[1].commit,
            date: dateArrays[1][3],
          },
          {
            title: this.schedules[1].title,
            color: this.schedules[1].color,
            commit: this.schedules[1].commit,
            date: dateArrays[1][4],
          },
        ],
        [
          {
            title: this.schedules[2].title,
            color: this.schedules[2].color,
            commit: this.schedules[2].commit,
            date: dateArrays[2][0],
          },
          {
            title: this.schedules[2].title,
            color: this.schedules[2].color,
            commit: this.schedules[2].commit,
            date: dateArrays[2][1],
          },
          {
            title: this.schedules[2].title,
            color: this.schedules[2].color,
            commit: this.schedules[2].commit,
            date: dateArrays[2][2],
          }
        ]
      );
hasyrails commented 4 years ago
var emptyArray = [];
      var DevidedSchedule = [];
      let N = 0;
      while(N <= this.schedules.length -1){
        DevidedSchedule.push([]);
        N = N + 1;
      }

let m = 0;
      let n = 0;
      while(m <= dateArrays.length -1){
        while(n <= dateArrays[m].length -1){
          DevidedSchedule[m].push({
            title: this.schedules[m].title,
            color: this.schedules[m].color,
            commit: this.schedules[m].commit,
            date: dateArrays[m][n],
          });
          n = n + 1;
        }
        // n = 0;      //  ←このn超大事
        m = m + 1;
      }

Image from Gyazo

nがリセットされないままループするので 抜けが生じてしまう

hasyrails commented 4 years ago
let m = 0;
      let n = 0;
      while(m <= dateArrays.length -1){
        while(n <= dateArrays[m].length -1){
          DevidedSchedule[m].push({
            title: this.schedules[m].title,
            color: this.schedules[m].color,
            commit: this.schedules[m].commit,
            date: dateArrays[m][n],
          });
          n = n + 1;
        }
        n = 0;     // nをリセット
        m = m + 1;
      }

所望の形にできた

ハードコーディングで作った形と同じにできた Image from Gyazo

hasyrails commented 4 years ago

もしや

[[],[].[]]

の入れ子構造では v-forで表示できない??

hasyrails commented 4 years ago

DevidedScheduleの構造の変更が必要

[[{}],[{}],[{}]]

ではv-forループできない 2重配列構造は不可

[{},{},{}]