/*,========================================, LFU 最近最少使用,========================================,*/function LFUCache(限制){ 时间=limit 限制| | 10; var _store =,[];,//,存储数据,{数:1、数据:"} var index =, {}; 时间=this.get 函数(关键){ var ind =,指数(例子); var result =, _store(印第安纳州); 如果(结果==null){//大敌;未命中 return 零; } var count =, + + result.count; var newInd =, 1; (var 我=0;i<,印第安纳州,我+ +){ 如果(_store[我].count<=count) { newInd =,我; 打破; } }//,将命中的元素移动到指定的位置 _store.splice(印第安纳州,1); _store.splice (newInd 0的结果); (var k 指数拷贝){ 如果(指数[k]祝辞=newInd) { 指数[k]=+ +指数[k]; } } 指数(例子),=,newInd; return 结果; }; 时间=this.set 函数(关键字,值){ 如果(_store.length>=限制){ _store.pop (); }//,获取数为1的第一个数组索引 var oneCountIndex =, 1; (var i=0; i< _store.length;我+ +){ var count =, _store[我].count; 如果(count==1) { oneCountIndex =,我; 打破; } } var item =,{数:1、数据:价值}; 如果(oneCountIndex> 1) { _store.splice (oneCountIndex 0项); (var k 指数拷贝){ 如果(指数[k]祝辞=oneCountIndex) { 指数[k]=+ +指数[k]; } } 指数(例子),=,oneCountIndex; 其他}{ _store.push(项); 指数(例子),=,_store.length-1; } }; 时间=this.list 函数(){ console.log (JSON.stringify (_store)); }; }