簡體   English   中英

有沒有辦法使活動花費的總時間始終為24小時

[英]Is there a way to make the total time spent on the activities to always be 24hrs

我想隨機產生某人每天花在各種活動上的小時數。

我創建了一個對象,該對象將存儲對象鍵(活動),其值(小時)和一個用於保存它們的數組。 我還使用了一種隨機方法來生成小時數,並確保在隨機生成下一個對象屬性之前,每個初始值都不會超過24小時。 但我需要幾個小時才能總和為24小時。

 let organised = new Object(),
    pworks = null,
    commutes = null,
    fun = null,
    work = false;
    let arr= [];
   if(!work){ 
       organised.pworks = Math.floor(Math.random()*24)
       if(organised.pworks < 24){
           console.log('you spend ' + organised.pworks+'hrs' + ' on Primary Work' )
          arr.push(organised.pworks)
          organised.commutes = Math.floor(Math.random()*24)
          if(organised.commutes + organised.pworks < 24){
            arr.push(organised.commutes)
            console.log('you spend ' + organised.commutes+'hrs' + ' on Commute' )
            organised.fun = Math.floor(Math.random()*24)
            if(organised.commutes + organised.pworks + organised.fun <= 24){
            console.log('you spend ' + organised.fun+'hrs' + ' on having Fun' )
    arr.push(organised.fun)
  }
}

}}

您在主要工作上花費6個小時,在通勤上花費10個小時,在娛樂上花費8個小時

您需要選擇在離開后的時間內而不是整個24小時內都是隨機的隨機值。 因此,例如,這是不正確的:

organised.commutes = Math.floor(Math.random() * 24);

...因為這不允許organized.pworks的.pworks花費的時間。 所以:

organised.commutes = Math.floor(Math.random() * (24 - organized.pworks));

...等等,對於下一個,必須同時考慮organized.pworksorganized.commute 保持連續運行可能很方便,因此您不必繼續添加其他屬性:

var remaining = 24;
organised.pworks = Math.floor(Math.random() * remaining);
remaining -= organised.pworks;
// ...
organised.commutes = Math.floor(Math.random() * remaining);
remaining -= organised.commutes;
// ...

然后,您可能不希望最后一個值是隨機值,而只需要剩余時間:

organised.fun = remaining;

暫無
暫無

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

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