JS里的居民们5-数组(栈)
编码1(栈顶在最右)
练习如何使用数组来实现栈,综合考虑使用数组的 push,pop,shift,unshift操作
基于代码,实现如按钮中描述的功能:
- 实现如阅读材料中,队列的相关进栈、退栈、获取栈顶、判空的操作
- 栈顶对应数组中最后一个元素
- 进栈和退栈操作后,需要在 id 为 stack-cont 的 p 标签中更新显示栈中的内容,栈顶在最右侧,中间用 -> 连接(练习使用数组的join方法)
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>JS里的居民们6-数组(栈-栈顶在右)</title>
</head> <body>
<input id="stack-input" type="text">
<p id="stack-cont">栈内容:apple->pear</p>
<button id="push-btn">进栈</button>
<button id="pop-btn">退栈</button>
<button id="font-btn">打印栈顶元素内容</button>
<button id="empty-btn">判断栈是否为空</button> <script>
var stack = ["apple", "pear"];
var txt = document.getElementById("stack-input");
var stackcont = document.getElementById("stack-cont");
var pushbtn = document.getElementById("push-btn");
var popbtn = document.getElementById("pop-btn");
var fontbtn = document.getElementById("font-btn");
var emptybtn = document.getElementById("empty-btn"); pushbtn.onclick = function () {
stack.unshift(txt.value);
stackcont.innerHTML = "栈内容:" + stack.join("->");
}
popbtn.onclick = function () {
stack.shift();
stackcont.innerHTML = "栈内容:" + stack.join("->");
}
fontbtn.onclick = function () {
stackcont.innerHTML = "栈内容:" + stack[stack.length - 1];
}
emptybtn.onclick = function () {
if (stack.length == 0) {
stackcont.innerHTML = "栈内容:空";
} else {
stackcont.innerHTML = "栈内容:不为空";
}
}
</script>
</body> </html>
编码2(栈顶在最左)
对上面练习进行小调整
基于代码,实现如按钮中描述的功能:
- 实现如阅读材料中,队列的相关进栈、退栈、获取栈顶、判空的操作
- 栈顶对应数组中第一个元素
- 进栈和退栈操作后,需要在 id 为 stack-cont 的 p 标签中更新显示栈中的内容,栈顶在最左侧,中间用 -< 连接(练习使用数组的join方法)
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>JS里的居民们7-数组(栈-栈顶在左)</title>
</head> <body>
<input id="stack-input" type="text">
<p id="stack-cont">栈内容:apple->pear</p>
<button id="push-btn">进栈</button>
<button id="pop-btn">退栈</button>
<button id="font-btn">打印栈顶元素内容</button>
<button id="empty-btn">判断栈是否为空</button> <script>
var stack = ["apple", "pear"];
var txt = document.getElementById("stack-input");
var stackcont = document.getElementById("stack-cont");
var pushbtn = document.getElementById("push-btn");
var popbtn = document.getElementById("pop-btn");
var fontbtn = document.getElementById("font-btn");
var emptybtn = document.getElementById("empty-btn"); pushbtn.onclick = function () {
stack.push(txt.value);
stackcont.innerHTML = "栈内容:" + stack.join("<-");
}
popbtn.onclick = function () {
stack.pop();
stackcont.innerHTML = "栈内容:" + stack.join("<-");
}
fontbtn.onclick = function () {
stackcont.innerHTML = "栈内容:" + stack[0];
}
emptybtn.onclick = function () {
if (stack.length == 0) {
stackcont.innerHTML = "栈内容:空";
} else {
stackcont.innerHTML = "栈内容:不为空";
}
}
</script>
</body> </html>
JS里的居民们5-数组(栈)的更多相关文章
- JS里的居民们7-对象和数组转换
编码 学习通用的数据用不同的数据结构进行存储,以及相互的转换 对象转为数组: var scoreObject = { "Tony": { "Math": 95, ...
- JS里的居民们6-数组排序
编码 var arr = [43, 54, 4, -4, 84, 100, 58, 27, 140]; 将上面数组分别按从大到小以及从小到大进行排序后在console中输出 var arr = ['a ...
- JS里的居民们4-数组((堆)队列
编码1(队头在最右) 练习如何使用数组来实现队列,综合考虑使用数组的 push,pop,shift,unshift操作 基于代码,实现如按钮中描述的功能: 实现如阅读材料中,队列的相关入队.出队.获取 ...
- 用JS描述的数据结构及算法表示——栈和队列(基础版)
前言:找了上课时数据结构的教程来看,但是用的语言是c++,所以具体实现在网上搜大神的博客来看,我看到的大神们的博客都写得特别好,不止讲了最基本的思想和算法实现,更多的是侧重于实例运用,一边看一边在心里 ...
- Javascript中双等号(==)隐性转换机制 JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密
Javascript中双等号(==)隐性转换机制 在Javascript中判断相等关系有双等号(==)和三等号(===)两种.其中双等号(==)是值相等,而三等号(===)是严格相等(值及类型是否 ...
- 理解 Node.js 里的 process.nextTick()
有很多人对Node.js里process.nextTick()的用法感到不理解,下面我们就来看一下process.nextTick()到底是什么,该如何使用. Node.js是单线程的,除了系统IO之 ...
- js里function的apply vs. bind vs. call
js里除了直接调用obj.func()之外,还提供了另外3种调用方式:apply.bind.call,都在function的原型里.这3种方法的异同在stackoverflow的这个答案里说的最清楚, ...
- JS~JS里的数据类型
JS里的数据类型,它虽然是个弱类型的语言,但它也有自己的规定的,它不会向其它语言那么,使用int来声明一个整形变量,而是使用 var,如果你是一个C#的开发者,你就会知道,原来C#现在也在和JS学,开 ...
- Augular JS里的各种ng
Augular JS里的各种ng- 正文: 1.ng-disabled="一种状态:该状态下不可用"例如: %button.btn.btn-2(ng-disabled=" ...
随机推荐
- 浅谈Ionic2
http://www.cnblogs.com/zhouming-web/p/6226323.html 前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScrip ...
- >>> 主页链接
服 务 & SDK 网易云信|真正稳定的IM即时通讯云服务 微信小程序开发工具下载 百度LBS开放平台 ( 百度地图API示例) 微信JSSDK说明文档 (在线demo) 园 友 京东开涛 W ...
- [译文]casperjs使用说明-选择器
casperjs的选择器可以在dom下工作,他既支持css也支持xpath. 下面所有的例子都基于这段html代码: <!doctype html> <html> <he ...
- javascript 私有化属性,和公共属性
function TestClassA(name, number) { this.name = name; //public this.number = number; //public var ac ...
- nginx高性能WEB服务器系列之八--nginx日志分析与切割
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- nginx高性能WEB服务器系列之六--nginx负载均衡配置+健康检查
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- 【洛谷 5002】专心OI - 找祖先 (树上计数)
专心OI - 找祖先 题目背景 \(Imakf\)是一个小蒟蒻,他最近刚学了\(LCA\),他在手机\(APP\)里看到一个游戏也叫做\(LCA\)就下载了下来. 题目描述 这个游戏会给出你一棵树,这 ...
- rinetd做代理!redis做代理使外网直接远程连接
Centos7下Rinetd安装与应用 Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.haproxy.nginx就不说 ...
- python学习,day2:列表的复制,字符串的处理
---恢复内容开始--- 元组(tuple)是只读列表,不能修改,列表用中括号,元组用小括号.只能用index和count两个命令. ---恢复内容结束--- 字符串处理的代码 # coding=ut ...
- [转] shell逻辑运算总结, 包括[[]]与[]的区别,&&与-a的区别,||与-o的区别
[From] https://www.cnblogs.com/tony1314/p/8315666.html 1. 关于文件和目录 -f 判断某普通文件是否存在 -d 判断某目录是否存在 -b ...