题解 | #设计LRU缓存结构 使用map方法#
设计LRU缓存结构
http://www.nowcoder.com/practice/e3769a5f49894d49b871c09cadd13a61
function LRU( operators , k ) { var map = new Map(); //原型对象 var list = []; var res = []; for(var item in operators){ var op = operators[item][0]; if(op===1){ map.set(operators[item][1],operators[item][2]); //set方法 map.set(key,value) 且有重复key时会重新赋值 if(list.length>=k){ list.shift(); //删除最前面一个(最不常用) } list.push(operators[item][1]); //将最新的key插入到最后 }else if(op===2){ var key = operators[item][1]; var index = list.indexOf(key) if(index==-1){ res.push(-1); }else{ res.push(map.get(key)); //获取key属性的值 list.splice(index,1); list.push(key); //删除数组中间的值并插入到最后 } } } return res } module.exports = { LRU : LRU };