不确定是否是正确的词。
这是一个用来解释我想要的内容的补充场景。
假设有两个美发沙龙。
Salon A有2名员工。 沙龙B有1名员工。
假设我想计算在给定时间内沙龙的活动时间。
如果沙龙A有以下头发预约:
沙龙B有以下头发预约:
在这种情况下,我希望看到:
然后我可以说,如果顾客E去沙龙A,他们会等待大约6分钟让队列中的每个人都剪头发但是如果他们去沙龙B他们会等待每个客户提前约10分钟。 (活动除以客户完成)。我需要一种方法来计算这个,而不依赖于沙龙的工作人员数量。
我能想到的一种方法是拥有一个数组并用独特的分钟填充它。例如 对预订进行评估并将每一分钟添加到阵列中,随后的预订将只写出已经填充的现有分钟,然后我将有一个包含12项(分钟)的沙龙A和20项(分钟)数组沙龙B.我相信这会有用,但想知道是否有更好/更实用的方法吗?
我不介意用什么语言来看逻辑。
答案 0 :(得分:0)
这是一个简单的尝试,在JavaScript中。
说,每个客户10分钟,这是一个常数。所以对于Salon B来说,这非常简单:只有1个理发师,活动时间 10 *客户数量。
现在对于沙龙A,说app
是一个存储每个约会起点的数组。例如:
var app = [0, 2, 10, 13, 20, 32]
这意味着有6个顾客(可能是这样的:理发师A有0-10,10-20,20-30,32-42,理发师B有2-12,13-23,理发师A差)。 / p>
我们有一个arry timeline
。让我们循环app
:
var timeline = [];
for(var i = 0; i < app.length; i++) {
for(var j = app[i]; j < app[i] + 10; j++) {
timeline[j] = 1;
}
}
现在,timeline
显式记录每个活动分钟,还包含非活动孔。 1
表示有效,undefined
表示无效。
然后我们会减少timeline
,这会自动跳过undefined
:
var activity = timeline.reduce(function(a, b) {
return a + b;
});
activity; // 40
编辑:这只是一个问题,我确信还有其他问题,可能比这个更好:)