Stack.js
class Stack {
constructor(array) {
if (!array) array = [];
this._items = array;
}
//入栈
push(item) {
this._items.push(item);
}
//出栈
pop() {
return this._items.pop();
}
// 返回栈顶元素
peek(){
return this._items[this._items.length-1];
}
//返回布尔值,是否为空
isEmpty(){
return this._items.length === 0;
}
//返回元素个数
size(){
return this._items.length;
}
//将内容返回字符串
toString(){
let arr = this._items.reverse();
return arr.join(",");
}
}
html
<script src="Stack.js"></script>//调用
<script>
let stack = new Stack();
function ten2two(n) {
if (n < 1) {
return;
}
n = parseInt(n);
stack.push(n % 2);
ten2two(n / 2)
}
ten2two(21)
console.log(stack.toString())
</script>