Emily姨妈家的猫
按书上的样例,慢慢理解。
其实,JAVASCRIPT也应该可以写出正规点的,封装性好的代码。
<html>
<body>
<script type="text/javascript">
function findLivingCats() {
var livingCats = {"Spot": true,
"Noog": false,
"Biech": true,
"Cathy": false,
};
var mailArchive = ["died 06/12/2002 (mother Yellow Bess): Cathy Hobbles the 2nd, Cathy",
"born 20/09/2004 (mother Yellow Bess): Noog Hobbles the 2nd, Noog",
"born 12/11/2012 (mother Yellow Bess): Biech Hobbles the 2nd, Biech",
];
function startsWith(str, pattern) {
return str.slice(0, pattern.length) == pattern;
}
function catNames(paragraph) {
var colon = paragraph.indexOf(":");
console.log("colon: ", colon);
console.log("return: ", paragraph.slice(colon + 2).split(", "));
return paragraph.slice(colon + 2).split(", ");
}
function addToSet(set, values) {
for (var i = 0; i < values.length; i++)
set[values[i]] = true;
}
function removeFromSet(set, values) {
for (var i = 0; i < values.length; i++)
delete set[values[i]];
}
function handleParagraph(paragraph) {
if (startsWith(paragraph, "born")) {
addToSet(livingCats, catNames(paragraph));
}
else if(startsWith(paragraph, "died")) {
removeFromSet(livingCats, catNames(paragraph));
}
}
for (var mail = 0; mail < mailArchive.length; mail++) {
var paragraphs = mailArchive[mail].split("\n");
for (var i = 0; i < paragraphs.length; i++) {
handleParagraph(paragraphs[i]);
}
}
return livingCats;
}
var howMany = 0;
for (var cat in findLivingCats())
howMany++;
console.log("There are currently ", howMany, " cats alive.")
</script>
</body>
</html>

Emily姨妈家的猫的更多相关文章
- JavaScript编程精解 初读笔记
1.1 值 JavaScript里有6种基本类型的值: number.string.Boolean.object.function和undefined. 1.3.2 prompt和confirm 浏览 ...
- Eva 剧情解析
Eva 剧情解析 来源 https://zhuanlan.zhihu.com/p/20864898 [0.写在前面的话] 相信和我年龄差不多的小伙伴们对<新世纪福音战士>( <Neo ...
- Andre Weil的一生
在20世纪的数学家中,Andre Weil(1906-1998)以其渊博的学识.坎坷的经历和超凡的人格魅力成为引人注目的一员. 他无疑是20世纪最伟大的数学家之一.国际数学家大会把数学划分为19个大的 ...
- vs2010 快捷键大全
vs2010 快捷键大全 VS2010版快捷键 Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 ...
- tomcat从下载到使用
话说,某天正在和周公聊天下大事.被急促的电话铃声召唤回来,所谓江湖救急,于是远程一看.竟然是需要使用tomcat(汤姆家的猫),于是... 下面关于下载和配置tomcat的过程. ①.使用tomcat ...
- vs2010的快捷键
vs2010的快捷键 VS2008快捷键大全 Ctrl+m+Crtr+o折叠所有大纲Ctrl+M+Crtr+P: 停止大纲显示Ctrl+K+Crtr+C: 注释选定内容Ctrl+K+Crtr+U: 取 ...
- VS2008使用技巧及快捷键大全
VS2008技巧,非常实用,非常提高效率. 1,Visual Studio 2008自带的1000多个 Windows 系统使用的各种图标.光标和动画文件在Visual Studio 2008的安装目 ...
- [转]vs2010 快捷键大全
vs2010 快捷键大全 VS2010版快捷键 Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + ...
- Visual Studio shortcut keys
VS2010 快捷键 Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CT ...
随机推荐
- C#三元运算符
?:表达式1?表达式2:表达式3如果1为真则执行2,为假执行3
- webrtc学习——RTCPeerConnection
The RTCPeerConnection interface represents a WebRTC connection and handles efficient streaming of da ...
- 启动 XPs 代理
Xps代理:扩展了 1 : 运行sp_configure检查代理XPs 的 值. EXEC SP_CONFIGURE 'agent xps'查看run_value 值是否为0,如果为0:需要更改此设置 ...
- Solr使用初探——Solr的安装环境与配置
Solr是一个apache名下很好用的开源索引.搜索工具,网上的资料虽多但很杂,笔者花了一天的时间对Solr进行了较为初步的研究,对Solr的基础应用做了一定的总结.文中涉及到的配置方法并不唯一,AP ...
- Angularjs2——TypeScript学习网站
https://zhongsp.gitbooks.io/typescript-handbook/content/index.html
- Object-C类目(Category)
类目是Object-C中最有用的一个特性.实质上,类目允许你为一个已存在的类添加一些方法而不用子类化该类,也不需要你了解该类的实现细节. 这是特别有用的,因为你可以给一个内建的对象添加方法.当你想在你 ...
- autorelease 的基本使用
5-autorelease 的基本使用 0,引入 Person *p = [Persom new];[p release]; [p run]; [p run]; // 希望不立即释放,待 run执行完 ...
- html-----015---HTML ASCII 参考手册
HTML 和 XHTML 用标准的 7 比特 ASCII 代码在网络上传输数据. 7 比特 ASCII 代码可提供 128 个不同的字符值. 7 比特 可显示的 ASCII 代码 <html&g ...
- 类库探源——System.Math 和 Random
一.System.Math Math类:为三角函数.对数函数和其他通用数学函数提供常数和静态方法 命名空间: System 程序集 : mscorlib.dll 继承关系: 常用属性: Math. ...
- ASP.NET的GET和POST方式的区别归纳总结
表单提交中,ASP.NET的Get和Post方式的区别归纳如下 几点: 1. get是从服务器上获取数据,post是向服务器传送数据. 2. get是把参数数据队列加到提交表单的ACTION属性所指 ...