解决最多20个物体的最大高度

时间:2014-04-10 11:10:29

标签: javascript

画布里面有1到20个物体 对象具有left,width,top和height属性。

我将画布划分为12个部分。每个对象的宽度可以是画布宽度(月)的1/12或3/12(四分之一)。

现在我需要得到12个网格部分中每个对象内部高度的总和。

例如。 在第1部分中,1个月对象的高度为12 - >结果12
第2部分是2个月对象。高度10和14 - >结果24
在第4部分中是1个月对象和1个四分之一对象:高度12和14 - >结果26
在第5部分中是1个月对象和相同的四分之一对象:高度4和14 - >结果18

希望这是可以理解的。 javascript中需要解决方案 我所拥有的是一个包含所有开始部分和所有结束部分的数组。

例如:

startingSections = [1, 2, 2, 4, 4, 5]
endingSections = [1, 2, 2, 4, 6, 5]

我想要的输出如下:

var sectionsMax = [];
sectiosnMax = getMonthlyTops();

function getMonthlyTops(){
  var monthlyTops = [];

  /* Code here */

  return monthlyTops;
}

结果可能是:

sectionsMax = [12, 24, 0, 26, 18, 14, 0, 0, 0, 0, 0, 0]

示例图片: Example

1 个答案:

答案 0 :(得分:1)

你可以尝试一下并发布你得到的内容。由于您可以遍历对象,我认为您实际上不需要startingSectionsendingSections数组。

var monthlyTops = new Array(0,0,0,0,0,0,0,0,0,0,0,0);
canvas.forEachObject(function (targ) {
  x = targ.left / (canvas.width / 12);
  for (i = x; i < (x + targ.width / (canvas.width / 12) ); i++)
    monthlyTops[i] += targ.height;
});
return monthlyTops;