poker-html-client
Version:
HTML client for online poker
67 lines (56 loc) • 1.83 kB
text/typescript
class DuplicateFinder {
private dataEvents: any[][];
constructor() {
this.dataEvents = [];
}
public registerEvent(data: any[]) {
this.dataEvents.push(data);
while (this.dataEvents.length > 8) {
this.dataEvents.shift();
}
}
public clear() {
this.dataEvents = [];
}
public erase(callbackfn: (value: any[], index: number, array: any[][]) => boolean) {
this.dataEvents = this.dataEvents.filter(callbackfn);
}
public validateDuplicateEvents() {
let target = this.dataEvents.slice(0);
let duplicatesCount = 0;
for (let i = 0; i < target.length; i++) {
const current = target[i];
for (let j = i + 1; j < target.length; j++) {
const test = target[j];
if (test.length !== current.length) {
continue;
}
let notFound = false;
for (let k = 0; k < current.length; k++) {
if (current[k] !== test[k]) {
notFound = true;
break;
}
}
if (notFound) {
continue;
}
duplicatesCount++;
target = target.splice(j, 1);
j--;
}
}
if (duplicatesCount > 0) {
return true;
}
return false;
}
public printDebug() {
// tslint:disable-next-line:no-console
console.log("Duplicate events detected.");
this.dataEvents.forEach((_) => {
// tslint:disable-next-line:no-console
console.log(JSON.stringify(_));
});
}
}