Skip to content

Commit

Permalink
refactor: remove nested loop from removeDuplicateCuesFromTrack functi…
Browse files Browse the repository at this point in the history
…on (#1381)
  • Loading branch information
alex-barstow authored Mar 20, 2023
1 parent 93a2bfd commit 12acbdd
Showing 1 changed file with 9 additions and 19 deletions.
28 changes: 9 additions & 19 deletions src/util/text-tracks.js
Original file line number Diff line number Diff line change
Expand Up @@ -285,26 +285,16 @@ export const removeDuplicateCuesFromTrack = function(track) {
return;
}

for (let i = 0; i < cues.length; i++) {
const duplicates = [];
let occurrences = 0;

for (let j = 0; j < cues.length; j++) {
if (
cues[i].startTime === cues[j].startTime &&
cues[i].endTime === cues[j].endTime &&
cues[i].text === cues[j].text
) {
occurrences++;

if (occurrences > 1) {
duplicates.push(cues[j]);
}
}
}
const uniqueCues = {};

if (duplicates.length) {
duplicates.forEach(dupe => track.removeCue(dupe));
for (let i = cues.length - 1; i >= 0; i--) {
const cue = cues[i];
const cueKey = `${cue.startTime}-${cue.endTime}-${cue.text}`;

if (uniqueCues[cueKey]) {
track.removeCue(cue);
} else {
uniqueCues[cueKey] = cue;
}
}
};

0 comments on commit 12acbdd

Please sign in to comment.