选择二维数组中的“最低”项

时间:2013-06-24 15:53:46

标签: javascript arrays

我有一个数组 - 它填充了10 s。

当“渲染”出来时 - 它看起来像这样:
enter image description here

基本上,我想选择较低的部分(以红色突出显示)。无论如何只选择最低1 s?

再次感谢!

[编辑]
我应该提到最低点每次都是随机的!

[EDIT2]
目前我只是选择某个区域以下的所有内容,看看它是1并按照我的意愿行事......是否有更好的方法?

2 个答案:

答案 0 :(得分:1)

你反向循环遍历2d数组......

var lowest = [];
var threshold = 6; // find the 6 "lowest" 1's
for(var row=arr.length-1; row>=0; row--)
   for(var col=arr[row].length-1; col>=0; col--)
      if(arr[row][col] == 1 && threshold > 0) {
          threshold--;
          lowest.push({x: col, y: row});
      } 

答案 1 :(得分:0)

另一种方式:

1)每行计算密度=每行黑色像素数
    将这些数据放入一个新的一维数组中。

2)决定你认为它是腿的位置(可能有一个阈值, 或相对阈值(例如:非零行的平均值小于30%......)。

3)推送'leg'行中的所有(x,y)值。

这将避免许多小点“吃掉”像素阈值 在你来到怪物的身体之前。