我有一项服务,可以根据用户输入启动计算任务。我处于一个阶段,用户可以输入他们想要计算的帧,但是我需要一种方法,可以根据输入来计算帧的总数。
输入内容可能如下所示:eg.: "1-4; 10-20,2" will render frames 1, 2, 3, 4, 10, 12, 14, 16, 18, 20.
这将创建输出10
So `;` is like a separator
x - y is from frame x to frame y
x - y , z is every z frame between frame x and frame y
我不确定从哪里开始研究以创建此函数/算法(我希望这是正确的词)。任何能够向我指出某种方向或提供帮助的人,将不胜感激。
答案 0 :(得分:2)
这是使用Javascript的非常简单的实现。没有输入验证,非常基础/硬编码的逻辑。但这可以作为起点。
首先,将输入字符串分割为“;”然后分别处理每个部分。
var input = "1-4; 10-20,2"
var totFrames = 0;
var chunk = input.split(";")
chunk.forEach(processChunk);
console.log(totFrames);
function processChunk(chunk) {
var stepInfo = chunk.split(",");
var step = 1;
if(stepInfo.length > 1)
step = stepInfo[1];
var range = stepInfo[0].split("-");
var frame = Math.round((range[1]- range[0]+ 1) / step);
totFrames += frame;
}