繁体   English   中英

沿时间间隔在数组中分配一个值。 我正在使用nodejs。

[英]Distribute a value value along time interval in array. I am using nodejs.

抱歉,如果文字令人困惑,我不会说英语。

我的问题是:1.我有已打印的页数。 2.打印持续时间(开始时间和完成时间)3.我想按小时绘制图表,而每小时页数

示例:900页1:30我要这个小时数组:[600,300]

我认为这更多是数学上的问题,但是我没有个好主意。 有很多数据,我需要快速并优化算法。

Obs:我对逻辑更感兴趣,而不是编程语言。

好的,不确定是否适用于一切,但我认为这是一个好的开始。 我假设您的持续时间以分钟为单位,否则我相信您可以将其转换为分钟。

 function something(pages,totalDutation){ // pages = 900 // totalDutation = 90 var printsPerMinute = pages / totalDutation //get the prints per minute! var printsPerHour = Math.floor(printsPerMinute * 60) //calculate the prints made in one hour var countOfHours = parseInt(totalDutation / 60) //divide the total duration by 60 to get the count of hours var remainingPrints = (totalDutation % 60) * printsPerMinute //add the extra prints that didn't complete a whole hour. var result = Array(countOfHours).fill(printsPerHour) //create an array and fill it. if(remainingPrints) result.push(remainingPrints) return result } 

看一下下面的NodeJS示例,以了解如何完成它。 不过,可能需要进行一些微调。

  1. 计算每小时的打印数量
  2. 进行尽可能多的迭代
  3. 做(总打印数-每小时打印数)只要a> b,否则返回剩余的总打印数

     const getPagesPerHour = function (totalPrints, totalTime) { const printsPerHour = (totalPrints / totalTime) * 60; return Array.apply(null, { length: Math.ceil(totalPrints/printsPerHour) }).map(function (val, key) { if (totalPrints > printsPerHour) { totalPrints = (totalPrints - printsPerHour); return printsPerHour; } else { return totalPrints; } }); } console.log(getPagesPerHour(900, 90)); // [600, 300] 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM