簡體   English   中英

所以我正在嘗試使用 JavaScript 填充 HTML 表。 我不知道如何解除 arrays 以正確顯示數據

[英]So I am trying to populate a HTML table using JavaScript. I can't figure out how to unshift the arrays to correctly display the data

所以我正在嘗試使用 JavaScript 填充 HTML 表。 我似乎無法讓我的表格正確填充。 這是我嘗試的第一個版本。

const schedule =
    [
      {
        week: 1,
        day: "Sunday",
        unit: 1,
        challenge: "Data Not Available",
        goals: [
          'No Goals'
        ]
      },
    {
      week: 1,
      day: "Monday",
      unit: 1,
      challenge: "Javascript Fundamentals",
      goals: [
        'Complete js-fundamental challenge'
      ]
    },{
      week: 1,
      day: "Tuesday",
      unit: 1,
      challenge: "No Data Available",
      goals: [
        'No Goals'
      ]
    },
    {
      week: 1,
      day: "Wednesday",
      unit: 1,
      challenge: "No Data Available",
      goals: [
        'Complete js-fundamental challenge'
      ]
    },
    {
      week: 1,
      day: "Thursday",
      unit: 1,
      challenge: "No Data Available",
      goals: [
        'No Goals'
      ]
    },
    {
      week: 1,
      day: "Friday",
      unit: 1,
      challenge: "No Data Available",
      goals: [
        'No Goals'
      ]
    },
    {
      week: 1,
      day: "Saturday",
      unit: 1,
      challenge: "No Data Available",
      goals: [
        'No Goals'
      ]
    },
    {
      week: 2,
      day: "Sunday",
      unit: 2,
      challenge: "Data Structures",
      goals: [
        'Re-implement the following data structures: linked list, stack, queue, set, graph, hash table, tree, binary search tree',
      ]
    },
    {
      week: 2,
      day: "Monday",
      unit: 2,
      challenge: "Data Structures",
      goals: [
        'Re-implement the following data structures: linked list, stack, queue, set, graph, hash table, tree, binary search tree',
      ]
    },
    {
      week: 2,
      day: "Tuesday",
      unit: 3,
      challenge: "Algorithms",
      goals: [
        'Complete coin sum',
        'Complete n-paths'
      ]
    },
    {
      week: 2,
      day: "Wednesday",
      unit: 2,
      challenge: "No Data Available",
      goals: [
        'No Goals',
      ]
    },
    {
      week: 2,
      day: "Thursday",
      unit: 2,
      challenge: "No Data Available",
      goals: [
        'No Goals',
      ]
    },
    {
      week: 2,
      day: "Friday",
      unit: 2,
      challenge: "Data Structures",
      goals: [
        'Re-implement the following data structures: linked list, stack, queue, set, graph, hash table, tree, binary search tree',
      ]
    },
    {
      week: 2,
      day: "Saturday",
      unit: 2,
      challenge: "Data Structures",
      goals: [
        'Re-implement the following data structures: linked list, stack, queue, set, graph, hash table, tree, binary search tree',
      ]
    },
    {
      week: 3,
      day: "Monday",
      unit: 4,
      challenge: "Frontend Fundamentals",
      goals: [
        'Complete'
      ]
    },
    {
      week: 3,
      day: "Sunday",
      unit: 5,
      challenge: "No Data",
      goals: [
        'No Goals'
      ]
    },
    {
      week: 3,
      day: "Monday",
      unit: 5,
      challenge: "No Data",
      goals: [
        'No Goals'
      ]
    },
    {
      week: 3,
      day: "Tuesday",
      unit: 5,
      challenge: "No Data",
      goals: [
        'No Goals'
      ]
    },
    {
      week: 3,
      day: "Wednesday",
      unit: 5,
      challenge: "AJAX",
      goals: [
        'Connect calendar to google API',
        'Create chatroom'
      ]
    },
    {
      week: 3,
      day: "Thursday",
      unit: 5,
      challenge: "No Data",
      goals: [
        'No Goals'
      ]
    },
    {
      week: 3,
      day: "Friday",
      unit: 6,
      challenge: "React",
      goals: [
        'Create tic tac toe',
        'Reactify frontend code'
      ]
    },
    ];

    let week  = [];
    let day  = [];
    let unit  = [];
    let challenge = [];
    let goals  = [];

    const valueArray = [week, day, unit, challenge, goals];

    schedule.forEach(set => {
        Object.values(set).forEach((value, i) => {
            valueArray[i].push(value);
          });
    });

    let weeks = [];

    week.forEach(week => {
        if (!weeks.includes(week)) {
            weeks.push(week)
        }
    })

    for (let i = 1; i <= weeks.length; i++) {
        document.write("week " + i)
        
        let table = "<table>"

        table += "<tr>"
        for (let i = 0; i < 7; i++) {
            table += "<th>" + day[i] + "<th>"
            day.unshift()
        }
        table += "</tr>"

        table += "<tr>"
        for (let i = 0; i < 7; i++) {
            table += "<td>" + unit[i] + "<td>"
            unit.unshift()
        }
        table += "</tr>"

        table += "<tr>"
        for (let i = 0; i < 7; i++) {
            table += "<td>" + challenge[i] + "<td>"
            challenge.unshift()
        }
        table += "</tr>"

        for (let i = 0; i < 7; i++) {
          table += "<td>" + goals[i] + "<td>"
          goals.unshift()
        }
        table += "</tr>"

        table += "</table>"
        document.write(table);
    }

它用每個數組的前 7 個元素填充這樣的表。

第一個表渲染

然后我試着用這個來渲染表格:

for (let i = 1; i <= weeks.length; i++) {
        document.write("week " + i)
        
        let table = "<table>"

        table += "<tr>"
        for (let i = 0; i < 7; i++) {
            table += "<th>" + day[i] + "<th>"
            day.unshift(0)
        }
        table += "</tr>"

        table += "<tr>"
        for (let i = 0; i < 7; i++) {
            table += "<td>" + unit[i] + "<td>"
            unit.unshift(0)
        }
        table += "</tr>"

        table += "<tr>"
        for (let i = 0; i < 7; i++) {
            table += "<td>" + challenge[i] + "<td>"
            challenge.unshift(0)
        }
        table += "</tr>"

        for (let i = 0; i < 7; i++) {
          table += "<td>" + goals[i] + "<td>"
          goals.unshift(0)
        }
        table += "</tr>"

        table += "</table>"
        document.write(table);
    }

這給了我這個:

第二個表渲染

我不確定如何將 arrays 移到每次只取出前 7 個元素的位置。 如果可以,請你幫助我:)

正如 Terry 所建議的,您可以使用 slice 每周花 7 天時間:

 const schedule = [ { week: 1, day: "Sunday", unit: 1, challenge: "Data Not Available", goals: ["No Goals"] }, { week: 1, day: "Monday", unit: 1, challenge: "Javascript Fundamentals", goals: ["Complete js-fundamental challenge"] }, { week: 1, day: "Tuesday", unit: 1, challenge: "No Data Available", goals: ["No Goals"] }, { week: 1, day: "Wednesday", unit: 1, challenge: "No Data Available", goals: ["Complete js-fundamental challenge"] }, { week: 1, day: "Thursday", unit: 1, challenge: "No Data Available", goals: ["No Goals"] }, { week: 1, day: "Friday", unit: 1, challenge: "No Data Available", goals: ["No Goals"] }, { week: 1, day: "Saturday", unit: 1, challenge: "No Data Available", goals: ["No Goals"] }, { week: 2, day: "Sunday", unit: 2, challenge: "Data Structures", goals: [ "Re-implement the following data structures: linked list, stack, queue, set, graph, hash table, tree, binary search tree" ] }, { week: 2, day: "Monday", unit: 2, challenge: "Data Structures", goals: [ "Re-implement the following data structures: linked list, stack, queue, set, graph, hash table, tree, binary search tree" ] }, { week: 2, day: "Tuesday", unit: 3, challenge: "Algorithms", goals: ["Complete coin sum", "Complete n-paths"] }, { week: 2, day: "Wednesday", unit: 2, challenge: "No Data Available", goals: ["No Goals"] }, { week: 2, day: "Thursday", unit: 2, challenge: "No Data Available", goals: ["No Goals"] }, { week: 2, day: "Friday", unit: 2, challenge: "Data Structures", goals: [ "Re-implement the following data structures: linked list, stack, queue, set, graph, hash table, tree, binary search tree" ] }, { week: 2, day: "Saturday", unit: 2, challenge: "Data Structures", goals: [ "Re-implement the following data structures: linked list, stack, queue, set, graph, hash table, tree, binary search tree" ] }, { week: 3, day: "Monday", unit: 4, challenge: "Frontend Fundamentals", goals: ["Complete"] }, { week: 3, day: "Sunday", unit: 5, challenge: "No Data", goals: ["No Goals"] }, { week: 3, day: "Monday", unit: 5, challenge: "No Data", goals: ["No Goals"] }, { week: 3, day: "Tuesday", unit: 5, challenge: "No Data", goals: ["No Goals"] }, { week: 3, day: "Wednesday", unit: 5, challenge: "AJAX", goals: ["Connect calendar to google API", "Create chatroom"] }, { week: 3, day: "Thursday", unit: 5, challenge: "No Data", goals: ["No Goals"] }, { week: 3, day: "Friday", unit: 6, challenge: "React", goals: ["Create tic tac toe", "Reactify frontend code"] } ]; let result = ''; const weeks = Math.ceil(schedule.length / 7); for (let i = 0; i < weeks; i++) { result += `<div>Week ${i + 1}</div>`; const week = schedule.slice(i * 7, i * 7 + 7); result += '<table><thead><tr>'; result += week.map(({day}) => `<th>${day}</th>`).join(''); result += '</tr></thead>'; result += '<tbody><tr>'; result += week.map(({unit}) => `<td>${unit}</td>`).join(''); result += '</tr>'; result += '<tr>'; result += week.map(({challenge}) => `<td>${challenge}</td>`).join(''); result += '</tr>'; result += '<tr>'; result += week.map(({goals}) => `<td>${goals}</td>`).join(''); result += '</tr></tbody></table>'; } document.write(result);
 table, th, td { border: 1px solid black; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM