忙于Delphi考试作业,额,这个软件真不好用……
忙于Delphi考试作业,额,这个软件真不好用……
转自:黑客志
1. 列表中的每项乘2
Marcus的第一个例子演示了map函数,我们可以使用range语法以及一个匿名函数来完成同样的事情:
我们还有下面这个更易读的版本:
2. 数列求和
Javascript(以及CoffeeScript扩展)同样有原生的map以及reduce函数:
3. 检查字符串是否包含某个单词
这实在是再简单不过了,因为我们有some方法,只要数组中的任何元素满足条件它就会返回true:
下面的语句会返回匹配到的单词:
~在CoffeeScript中并不是什么特别的操作符,这里我们使用了一个小技巧,它实际上就是按位取反操作符,会对数值按位进行取反操作,在上面的例子里它相当于-x-1,这里我们用它来检查数组的下标是否大于-1,因为-(-1)-1 == 0,会返回false。
4. 读取文件
使用客户端Javascript框架的用户会对下面的代码感到很亲切:
你还可以使用同步版本:
不过在node.js中,你只有在程序启动时才可以使用同步版本,其它时间你都应该使用异步版本。
5. 生日快乐
首先,先来一个Scala版本的映射版,不过我对字符串做了一点篡改:
下面再来一个优化版,这个读起来更像伪代码了:
6. 过滤数列
将一个数字序列过滤为两种类型,这已经很接近了:
(也可以使用filter,但是那样就不是一行了。。。)
7. 读取并解析一个XML Web service
XML是个神马东东?从没听过,让我们把它换成json,你可以使用request库:
8. 找到一个数列的最小(最大)值
我们有非常棒的apply函数,它可以让你通过一个数组来调用拥有可变参数的函数:Math.max以及Math.min,这两个函数都接受可变长度参数,比如Math.max 30, 10, 20返回30,让我们试试下面的代码:
9. 并行处理
这个还不行,你可以创建子进程并自己和它们进行通讯,或者使用WebWorkers API实现,让我们跳过这个。
10. 埃拉托斯特尼筛法
(译者注:埃拉托斯特尼筛法是古希腊数学家埃拉托斯特尼所提出的一种简单的判定素数的算法,详细介绍请参见维基百科)
一行可以搞定?
更新 (06/05): @dionyziz 发给了我这个更简洁的版本:
现在我们可以像原始版一样用一行来完成判定了:
或者是下面这样:
11. 奖励
最后,再奖励你们一个你肯定没见过的最易读的fizzbuzz(数3,数5游戏)版本:
更新:基于satyr的提示,这里是一个更简单,也更取巧的版本:
如果你对数组使用+操作符,它会变成一个字符串,当数组中包含undefined或是null时,[].toString()和[].join(‘,’)是一个效果,这在Javascript中也同样有效([undefined] + “b” === “b”)
延伸分享——Node.JS源码研究
你要把简单的事情做好,每一天做的更好一点点!
今天下午仍旧是噩梦,我一定要改变,不能被自己打倒。做不到只是你的决心不够强而已!
用一种好的欲望去覆盖另一种欲望,就可以战胜它了。
推荐:
儿时的那堵墙,其实和现在的高度没什么区别,只不过我们变得害怕了。有的时候,只要你拿出儿时的一点点勇气,其实向前踏出冒险的一步并不是那么难。
你听见梦想破碎的声音,却无从拾起。你依旧还在等待,却不知道等的是什么——真的无能为力了吗?
Html的优美写法:
感觉今天就是一片空白……特别是闷热的下午。
加油!你必须很努力才能不被甩下去。
你的英语,还有很多路要走……
想要有一天,可以自信的用英语去交流。
今天,差点坠入深渊。
停水了……
你的心也静止了!我再也不要这样了。
推荐:
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程。
我不去想能否赢得爱情,
既然钟情于玫瑰,
就勇敢地吐露真诚。
我不去想身后会不会袭来寒风冷雨,
既然目标是地平线,
留给世界的只能是背影。
我不去想未来是平坦还是泥泞,
只要热爱生命,
一切,都在意料之中。