javascript-对象-模拟栈Stack操作
class Stack{
#count=0;
#items={};
size(){
//栈的大小
return this.#count;
}
isEmpty(){
return this.#count==0;
}
push(val){
this.#count++;
//对象的下标从1开始
this.#items[this.#count]=val;
}
peek(){
return this.#items[this.#count];
//查看栈顶的元素
}
clear(){
this.#items={};
this.#count=0;
}
pop(){
//取出栈顶的元素
if(this.isEmpty()){
return undefined;
}
let result =this.#items[this.#count];
delete this.#items[this.#count];
return result ;
}
}
const stack=new Stack();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push('hello');
console.log(stack);
//输出 Stack {1:'1',2:'2',3:'3',4:'hello'}
console.log(stack.peek());
//输出 hello
console.log(stack.size());
//输出4
console.log(stack.pop());
//输出 hello
console.log(stack);
//输出 Stack {1:'1',2:'2',3:'3'}