随手写系列-Map+递归/数组+Stack/Queue

257 阅读1分钟
//Map+递归
let arr = new Array(10).fill("").map((_, index) => {
  return index;
});
let dataMap = new Map();
const count = (data) => {
  if (data.length <= 0) {
    return;
  }
  if(dataMap.get(data)){
    return dataMap.get(data)
  }
  if (data.length == 1) {
    return data[0];
  }
  let mid = Math.floor(data.length / 2);
  let leftD = data.slice(0, mid);
  let rightD = data.slice(mid ); 
  dataMap.set(leftD,count(leftD))
  dataMap.set(rightD,count(rightD))
  return count(leftD) + count(rightD);
};

//数组+Stack/Queue
class Queue{
    #contains=new Array()
    find(index){
        return this.#contains[index]
    } 
    add(value){
        this.#contains.push(value)
    }
    popout(){
      return  this.#contains.shift()
    }
}
let test=new Queue()
test.add(1)
test.add(2)

console.log(test.find(0),test);
test.popout()
console.log(test.find(0),test.contains);

class Stack{
    #contains=new Array()
    find(index){
        return this.#contains[index]
    } 
    add(value){
        this.#contains.push(value)
    }
    popout(){
      return  this.#contains.pop()
    }
}

let testQueue=new Stack()
testQueue.add(1)
testQueue.add(2)
console.log(testQueue.find(0),testQueue);
testQueue.popout()
console.log(testQueue.find(0),testQueue.contains);