JSFiddle - React, Tailwind, and code Playground

JavaScript

/*
We are working on a security system for a badged-access room in our company's building.

We want to find employees who badged into our secured room unusually often. We have an unordered list of names and entry times over a single day. Access times are given as numbers up to four digits in length using 24-hour time, such as "800" or "2250".

Write a function that finds anyone who badged into the room three or more times in a one-hour period. Your function should return each of the employees who fit that criteria, plus the times that they badged in during the one-hour period. If there are multiple one-hour periods where this was true for an employee, just return the earliest one for that employee.

badge_times = [
['Paul', '1355'], ['Jennifer', '1910'], ['Jose', '835'],
['Jose', '830'], ['Paul', '1315'], ['Chloe', '0'],
['Chloe', '1910'], ['Jose', '1615'], ['Jose', '1640'],
['Paul', '1405'], ['Jose', '855'], ['Jose', '930'],
['Jose', '915'], ['Jose', '730'], ['Jose', '940'],
['Jennifer', '1335'], ['Jennifer', '730'], ['Jose', '1630'],
['Jennifer', '5'], ['Chloe', '1909'], ['Zhang', '1'],
['Zhang', '10'], ['Zhang', '109'], ['Zhang', '110'],
['Amos', '1'], ['Amos', '2'], ['Amos', '400'],
['Amos', '500'], ['Amos', '503'], ['Amos', '504'],
['Amos', '601'], ['Amos', '602'], ['Paul', '1416'],
];

Expected output (in any order)
{
  Amos: ["500", "503", "504"],
  Jose: ["830", "835", "855", "915", "930"],
  Paul: ["1315", "1355", "1405"],
  Zhang: ["10", "109", "110"]
}
n: length of the badge records array
*/
const badge_records = [
  ['Paul', '1355'],
  ['Jennifer', '1910'],
  ['Jose', '835'],
  ['Jose', '830'],
  ['Paul', '1315'],
  ['Chloe', '0'],
  ['Chloe', '1910'],
  ['Jose', '1615'],
  ['Jose', '1640'],
  ['Paul', '1405'],
  ['Jose', '855'],
  ['Jose', '930'],
  ['Jose', '915'],
  ['Jose', '730'],
  ['Jose', '940'],
  ['Jennifer', '1335'],
  ['Jennifer', '730'],
  ['Jose', '1630'],
  ['Jennifer', '5'],
  ['Chloe', '1909'],
  ['Zhang', '1'],
  ['Zhang', '10'],
 ...