LRU缓存结构 javascript

/**
 * lru design
 * @param operators int整型二维数组 the ops
 * @param k int整型 the k
 * @return int整型一维数组
 */
function LRU( operators ,  k ) {
    var map = new Map();
    var temp;
    var result = [];
    for(let i = 0; i < operators.length; i++){
        if(operators[i][0] === 1){
         // map中已经存在该key,说明其对应value需要更新          
            if(map.has(operators[i][1])){
                map.delete(operators[i][1]);
            }else{ //map已满,需要找到最久未访问的删除后,再添加新键值对
                if(map.size==k){
                    const iterator = map.entries();
                    map.delete(iterator.next().value[0]);
                }
            }
            map.set(operators[i][1], operators[i][2]);
        }else{
            if(map.has(operators[i][1])){
                //如果map中有需要查询的key,先保存其值再删除然后添加,可保证这次访问后该键值对为最新插入,不会在删除时误删
                temp = map.get(operators[i][1]);
                map.delete(operators[i][1]);
                map.set(operators[i][1], temp)
                result.push(temp);
            }else{
                result.push(-1);
            }           
        }
    }
    return result;
}
module.exports = {
    LRU : LRU
};