CoffeeScript

JavaScript

CoffeeScript 数学常数

12 0

数学常数 问题 你需要使用常见的数学常数,比如π或者e。 解决方案 使用Javascript的Math object来提供通常需要的数学常数。Math.PI # => 3.141592653589793# Note: Capitalization matters! This produces no output, it's undefined. Math.Pi # =>Math.E # => 2.718281828459045Math.SQRT2 # => 1.414213

JavaScript

CoffeeScript 扩展内置对象

9 0

扩展内置对象 问题 你想要扩展一个类来增加新的函数或者替换旧的。 解决方案 使用 :: 把你的新函数分配到对象或者类的原型中。String::capitalize = () ->(this.split(/\s+/).map (word) -> word[0].toUpperCase() + word[1..-1].toLowerCase()).join ' '"foo bar baz".capitalize() # => 'Foo Ba

JavaScript

CoffeeScript 列表推导

4 0

列表推导 问题 你有一个对象数组,想将它们映射到另一个数组,类似于Python的列表推导。 解决方案 使用列表推导,但不要忘记还有[mapping-arrays]( http://coffeescript-cookbook.github.io/chapters/arrays/mapping-arrays) 。electric_mayhem = [ { name: "Doctor Teeth", instrument: "piano" },{ name: "

JavaScript

CoffeeScript 观察者模式

11 0

观察者模式 问题 当一个事件发生时你不得不向一些对象发布公告。 解决方案 使用观察者模式(Observer Pattern)。class PostOfficeconstructor: () ->@subscribers = []notifyNewItemReleased: (item) ->subscriber.callback(item) for subscriber in @subscribers when subscriber.item is itemsubscribe: (to, on

JavaScript

CoffeeScript 找到上一个月(或下一个月)

15 0

找到上一个月(或下一个月) 问题 你需要计算相关日期范围例如“上一个月”,“下一个月”。 解决方案 添加或减去当月的数字,JavaScript的日期构造函数会修复数学知识。# these examples were written in GMT-6 # Note that these examples WILL work in January! now = new Date # => "Sun, 08 May 2011 05:50:52 GMT"lastMonthStart =

JavaScript

CoffeeScript 打乱数组中的元素

6 0

打乱数组中的元素 问题 你想打乱数组中的元素。 解决方案Fisher-Yates shuffle是一种高效、公正的方式来让数组中的元素随机化。这是一个相当简单的方法:在列表的结尾处开始,用一个随机元素交换最后一个元素列表中的最后一个元素。继续下一个并重复操作,直到你到达列表的起始端,最终列表中所有的元素都已打乱。这[Fisher-Yates shuffle Visualization](http://bost.ocks.org/mike/shuffle/)可以帮助你理解算法。shuffle = (sour

JavaScript

CoffeeScript For 循环

11 0

For 循环 问题 你想通过一个for循环来迭代数组、对象或范围。 解决方案# for(i = 1; i<= 10; i++) x for x in [1..10] # => [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]# To count by 2 # for(i=1; i<= 10; i=i+2) x for x in [1..10] by 2 # => [ 1, 3, 5, 7, 9 ]# Perform a simple operation like

JavaScript

CoffeeScript 创建 jQuery 插件

7 0

创建 jQuery 插件 问题 你想用CoffeeScript来创建jQuery插件。 解决方案# 参考 jQuery $ = jQuery# 给 jQuery 添加插件对象 $.fn.extend# 把 pluginName 改成你的插件名字。pluginName: (options) -># 默认设置settings =option1: trueoption2: falsedebug: false# 合并选项与默认设置。settings = $.extend settings, options#