Might give this a shot. The function will return the index of the 'child array' if its found in the main data array. If its not found -1 will be returned.
var winArray = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[1, 4, 7],
[2, 5, 8],
[3, 6, 9],
[1, 5, 9],
[7, 5, 3]
];
var Xarray = [1,2,3];
function indexOfPredicate(data, value, predicate) {
if (typeof(predicate) !== 'function') {
throw "Predicate must be a function"
}
for(var x = 0; x < data.length; x++) {
if (predicate(data[x], value)) {
return x
}
}
return -1;
}
function indexOfMulti(data, value) {
return indexOfPredicate(data, value, function(a, b) {
if (a.length !== b.length) {
return false;
}
for(var i = 0; i < a.length; i++) {
if (a[i] !== b[i]) {
return false;
}
}
return true;
})
}
var index = indexOfMulti(winArray, Xarray);
var contains = index > -1;
console.log(index);
console.log(contains);