JSFiddle - React, Tailwind, and code Playground
by Prathameshsb
JavaScript
/**
* Implements a simple cache query handler using a hashmap.
* @param {string[][]} cache_entries - Array of [timestamp, key, value]
* @param {string[][]} queries - Array of [key, timestamp] queries
* @return {string[]} - Array of corresponding values
*/
function cacheQueryHandler(cache_entries, queries) {
// Step 1: Preprocess cache_entries into a Map
const cacheMap = new Map();
for (let [timestamp, key, value] of cache_entries) {
if (!cacheMap.has(key)) {
cacheMap.set(key, new Map());
}
cacheMap.get(key).set(timestamp, value);
}
// Step 2: Process queries and retrieve values
let results = [];
for (let [key, timestamp] of queries) {
if (cacheMap.has(key) && cacheMap.get(key).has(timestamp)) {
results.push(cacheMap.get(key).get(timestamp));
} else {
results.push("-1"); // If not found, return "-1"
}
}
return results;
}
// Example Usage:
const cache_entries = [
["12:30:22", "a2er580", "125"],
["09:07:47", "io09ju56", "341"],
["01:23:09", "a2er580", "764"]
];
const queries = [
["a2er580", "01:23:09"], // Expected: "764"
["io09ju56", "09:07:47"] // Expected: "341"
];
console.log(cacheQueryHandler(cache_entries, queries));
// Output: ["764", "341"]