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