偷懒了,使用Map对象搞了

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * lru design
 * @param operators int整型二维数组 the ops
 * @param k int整型 the k
 * @return int整型一维数组
 */
export function LRU(operators: number[][], k: number): number[] {
    // write code here
    const LRUMap = new Map()
    const result = []
    
    operators.forEach((ops) => {
        const [opt, ...item] = ops
        let [_key, value] = item
        
        // 检查是否存在
        const key = `${_key}`
        const has = LRUMap.has(key)
        
        if (opt === 1){
            // set opt
            if (has){
               // 存在就先删除
               LRUMap.delete(key)
            }else if (k <= LRUMap.size){
                // 超过或达到数量,先删除第一个
                const iterator = LRUMap[Symbol.iterator]();
                const [delKey, _v] = iterator.next().value
                LRUMap.delete(delKey)
            }
            LRUMap.set(key, value)
        } else if (opt === 2){
            // get opt
            let res = -1 // opt result
            if (has){
                value = LRUMap.get(key)
                // 先删除
                LRUMap.delete(key)
                // 再添加
                LRUMap.set(key, value)
                res = value
            }
            result.push(res)
        }
        

    })
    
    return result
}