CoffeeScript

JavaScript

CoffeeScript 匹配字符串

23 0

匹配字符串 问题 你想要匹配两个或多个字符串。 解决方案 计算把一个字符串转换成另一个字符串所需的编辑距离或操作数。levenshtein = (str1, str2) ->l1 = str1.lengthl2 = str2.lengthprevDist = [0..l2]nextDist = [0..l2]for i in [1..l1] by 1nextDist[0] = ifor j in [1..l2] by 1if (str1.charAt i-1) == (str2.charAt j-1

JavaScript

CoffeeScript 对象的链式调用

36 0

对象的链式调用 问题 你想调用一个对象上的多个方法,但不想每次都引用该对象。 解决方案 在每次链式调用后返回this(即@)对象class CoffeeCupconstructor: ->@properties=strength: 'medium'cream: falsesugar: falsestrength: (newStrength) ->@properties.strength = newStrengththiscream: (newCream) ->@prop

JavaScript

CoffeeScript 命令模式

15 0

命令模式 问题 你需要让另一个对象处理你自己的可执行的代码。 解决方案 使用Command pattern传递函数的引用。# Using a private variable to simulate external scripts or modules incrementers = (() ->privateVar = 0singleIncrementer = () ->privateVar += 1doubleIncrementer = () ->privateVar += 2com

JavaScript

CoffeeScript 数组最大值

24 0

数组最大值 问题 你需要找出数组中包含的最大的值。 解决方案 你可以使用JavaScript实现,在列表推导基础上使用Math.max():Math.max [12, 32, 11, 67, 1, 3]... # => 67 另一种方法,在ECMAScript 5中,可以使用Array的reduce方法,它与旧的JavaScript实现兼容。# ECMAScript 5 [12,32,11,67,1,3].reduce (a,b) -> Math.max a, b # => 67

JavaScript

CoffeeScript CoffeeScrip 的 type 函数

31 0

CoffeeScrip 的 type 函数 问题 你想在不使用typeof的情况下知道一个函数的类型。(要了解为什么typeof不靠谱,请参见 http://javascript.crockford.com/remedial.html。) 解决方案 使用下面这个type函数type = (obj) ->if obj == undefined or obj == nullreturn String objclassToType = {'[object Boolean]': 'b

JavaScript

CoffeeScript 找到一个月中的最后一天

25 0

找到一个月中的最后一天 问题 你需要去找出一个月的最后一天,但是一年中的各月并没有一个固定时间表。 解决方案 利用JavaScript的日期下溢来找到给出月份的第一天:now = new Date lastDayOfTheMonth = new Date(1900+now.getYear(), now.getMonth()+1, 0) 讨论 JavaScript的日期构造函数成功地处理溢出和下溢情况,使日期的计算变得很简单。鉴于这种简单操作,不需要担心一个给定的月份里有多少天;只需要用数学稍加推导。在十二

JavaScript

CoffeeScript 工厂方法模式

28 0

工厂方法模式 问题 直到开始运行你才知道需要的是什么种类的对象。 解决方案 使用工厂方法(Factory Method)模式和选择对象都是动态生成的。 你需要将一个文件加载到编辑器,但是直到用户选择文件时你才知道它的格式。一个类使用工厂方法 ( Factory Method )模式可以根据文件的扩展名提供不同的解析器。class HTMLParserconstructor: ->@type = "HTML parser" class MarkdownParserconstruct

JavaScript

CoffeeScript 更快的 Fibonacci 算法

27 0

更快的 Fibonacci 算法 问题 你想计算出Fibonacci数列中的数值N ,但需迅速地算出结果。 解决方案 下面的方案(仍有需改进的地方)最初在Robin Houston的博客上被提出来。 这里给出一些关于该算法和改进方法的链接: http://bosker.wordpress.com/2011/04/29/the-worst-algorithm-in-the-world/ http://www.math.rutgers.edu/~erowland/fibonacci http: