簡體   English   中英

如何記錄Javascript對象列表中的值數組?

[英]How do I log an array of values from a list of objects in Javascript?

我有一個天數組,其中每天分為30分鍾的塊,其中每個塊都是一個對象數組。 我想獲取每個塊的鍵“喚醒”的值。 如果wake為false,然后為true,我想將1加到一個名為sleepFrag的變量中,如果“ wake”為false,我想將30加到一個名為sleepPeriod的變量中。 我想控制台記錄我的兩個變量sleepPeriod和sleepFrag。

這是我要從中讀取的列表的樣子(我只包括了兩小時,兩天,每個“塊”分為24小時,我不知道有多少天):

 days = [
{
chunks: [
  {
    BM: 1,
    ID: 0,
    hour: "00",
    issue: 0,
    mealP: 30,
    timeMins: "00",
    wake: true
  },
  {
    BM: 0,
    ID: 1,
    hour: "00",
    issue: 0,
    mealP: 30,
    timeMins: "30",
    wake: true
  },
  {
    BM: 0,
    ID: 2,
    hour: "01",
    issue: 0,
    mealP: 0,
    timeMins: "00",
    wake: false
  },
  {
    BM: 0,
    ID: 3,
    hour: "01",
    issue: 3,
    mealP: 0,
    timeMins: "30",
    wake: false
  }

    ],
epoch: 1563163200
},
{
chunks: [
  {
    BM: 0,
    ID: 0,
    hour: "00",
    issue: 0,
    mealP: 0,
    timeMins: "00",
    wake: true
  },
  {
    BM: 0,
    ID: 1,
    hour: "00",
    issue: 0,
    mealP: 0,
    timeMins: "30",
    wake: true
  },
  {
    BM: 0,
    ID: 2,
    hour: "01",
    issue: 0,
    mealP: 0,
    timeMins: "00",
    wake: true
  },

等等

這是我已經嘗試過的:

function getSleep(daysIn){
    sleepFrag = 0
    sleepPeriod = 0
    for (chunk=0; chunk < days.length; chunk++){
        for(element=0; element< days[chunk].length; element++){
            if(days[element-1].wake==false)&&(days[element].wake==true){
                sleepFrag+=1
            }
            else if (days[element].wake==false){
                sleepPeriod+=30
            }

        }
        console.log("this is the sleep amount for day"+chunk+":"sleepPeriod)
        console.log("this is the number of sleep fragments for day"+chunk+":"sleepFrag)
    }
    console.log("this is the total number of sleep fragments :"+sleepFrag)
    console.log("this is the total amount of sleep :"+sleepPeriod)
}
console.log("sleep fragments and sleep periods")
getSleep(days)

我沒有在控制台上登錄,也沒有錯誤。 我希望得到:

睡眠碎片和睡眠時間

這是一天的睡眠量(“ im”代表當天的睡眠時間):(該天的sleepPeriod)

這是一天的睡眠片段的數量(“大塊”代表即時消息所在的日期):(該天的sleepFrag)

這是睡眠碎片總數:(睡眠碎片數)這是睡眠總量:(睡眠量)

您的函數的邏輯實際上是正確的..但是代碼編寫非常糟糕。.沒有var聲明,沒有分號(;)等。這是精煉的函數:

function getSleep(daysIn){
    var sleepFrag = 0
    var sleepPeriod = 0
    for (var i=0; i < daysIn.length; i++){
        var day = daysIn[i];
        var chunksOfTheDay = day.chunks;
        for(var j=1; j < chunksOfTheDay.length; j++){
            if((chunksOfTheDay[j-1].wake === false) && (chunksOfTheDay[j].wake === true)){
                sleepFrag+=1
            }
            else if (chunksOfTheDay[j].wake === false){
                sleepPeriod+=30
            }

        }
        console.log("this is the sleep amount for day"+i+":"+sleepPeriod);
        console.log("this is the number of sleep fragments for day"+i+":"+sleepFrag);
    }
    console.log("this is the total number of sleep fragments :"+sleepFrag);
    console.log("this is the total amount of sleep :"+sleepPeriod);
}
console.log("sleep fragments and sleep periods");
getSleep(days);

暫無
暫無

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

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