1.题目描述
编写一个类,它允许获取和设置键-值对,并且每个键都有一个 过期时间 。
该类有三个公共方法:
set(key, value, duration) :接收参数为整型键 key 、整型值 value 和以毫秒为单位的持续时间 duration 。一旦 duration 到期后,这个键就无法访问。如果相同的未过期键已经存在,该方法将返回 true ,否则返回 false 。如果该键已经存在,则它的值和持续时间都应该被覆盖。
get(key) :如果存在一个未过期的键,它应该返回这个键相关的值。否则返回 -1 。
count() :返回未过期键的总数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| var TimeLimitedCache = function () { this.map = new Map(); this.timeIds = {}; };
TimeLimitedCache.prototype.set = function (key, value, duration) { const res = this.map.has(key); this.map.set(key, value); clearTimeout(this.timeIds[key]); this.timeIds[key] = setTimeout(() => { this.map.delete(key); }, duration); return res; };
TimeLimitedCache.prototype.get = function (key) { return this.map.get(key) ?? -1; };
TimeLimitedCache.prototype.count = function () { return this.map.size;
|