Можно попробовать каждую строку бить на три части. Если остаток от деления на 3 == 0, то передать в функцию индекс строки и текущий индекс элемента.
for(var j = 0; j <= 9; j++){
arr[j].forEach(function(item, i) {
if(i % 3 == 0 && i != 0){
myFunc([arr[j], i]);
}
});
}
И в функции на основе принятых параметров сформировать массив, в котором проверить на совпадения. Тем самым уже проверены строки, осталось дело за столбцами.
function myFunc(arr){
var arr2 = [arr[0][arr[1]], arr[0][arr[1]-1], arr[0][arr[1]-2]];
var uni = arr2.filter(function(elem, pos) {
return arr2.indexOf(elem) == pos;
});
if(uni.length < 3){
alert('Найдено совпадение');
}
}
Чуть криво сделал, это просто идея, мож пригодится или натолкнет на мысль)