function solution(size, tasks) {
const cacheList = [];
const cacheHash = {};
for (const task of tasks) {
if (cacheHash.hasOwnProperty(task)) {
for (let i = cacheList.length; i > 0; i--) {
if (cacheList[i] == task)
[cacheList[i - 1], cacheList[i]] = [cacheList[i], cacheList[i - 1]];
}
} else {
cacheHash[task] = true;
cacheList.unshift(task);
if (cacheList.length > size) {
cacheList.pop();
delete cacheHash[task];
}
}
}
return cacheList;
}
const result = solution(5, [1, 2, 3, 2, 6, 2, 3, 5, 7]);
console.log(result);