SOURCE

  function produceArray(w, h) {
  var a = [];
  for (var i = 0; i < h; i++) {
    a[i] = [];
    for (var j = 0; j < w; j++) {
      a[i][j] = (Math.random() * 2) >> 0;
    }
  }
  return a;
}

var a = produceArray(5, 5);
console.log(a);

function travers(i, j, array) {
  var number = 0;
  array[i][j] = 0;
  number++;
  // 上
  if (i > 0 && array[i - 1][j] === 1) {
    number += travers(i - 1, j, array);
  }
  // 下
  if (i < array.length - 1 && array[i + 1][j] === 1) {
    number += travers(i + 1, j, array);
  }
  // 左
  if (j > 0 && array[i][j - 1] === 1) {
    number += travers(i, j - 1, array);
  }
  // 右
  if (j < array[i].length - 1 && array[i][j + 1] === 1) {
    number += travers(i, j + 1, array);
  }
  return number;
}

  function searchShape(array) {
      array = JSON.parse(JSON.stringify(array));
      var sum = [];
      for (var i = 0; i < array.length; i++) {
        for (var j = 0; j < array[i].length; j++) {
          if (array[i][j] === 1) {
            var number = 0;
            number = travers(i, j, array);
            sum.push(number);
          }
        }
      }
      return sum;
    }

console.log(searchShape(a))
console 命令行工具 X clear

                    
>
console