| 12345678910111213141516171819202122232425262728293031323334353637383940 | class LRUCache {  constructor () {    this.max = 1000    this.map = new Map()  }  get (key) {    const value = this.map.get(key)    if (value === undefined) {      return undefined    } else {      // Remove the key from the map and add it to the end      this.map.delete(key)      this.map.set(key, value)      return value    }  }  delete (key) {    return this.map.delete(key)  }  set (key, value) {    const deleted = this.delete(key)    if (!deleted && value !== undefined) {      // If cache is full, delete the least recently used item      if (this.map.size >= this.max) {        const firstKey = this.map.keys().next().value        this.delete(firstKey)      }      this.map.set(key, value)    }    return this  }}module.exports = LRUCache
 |