重复字符串
问题
你想重复一个字符串。
解决方案
创建一个包含n+1个空元素的数组,然后用要重复的字符串作为连接字符将数组元素拼接到一起:
# 创建包含10个foo的字符串
Array(11).join 'foo'
# => "f...
AI君
2年前 (2020-03-24) 57℃
0喜欢
匹配字符串
问题
你想要匹配两个或多个字符串。
解决方案
计算把一个字符串转换成另一个字符串所需的编辑距离或操作数。
levenshtein = (str1, str2) ->
l1 = str1.length
l...
AI君
2年前 (2020-03-24) 53℃
0喜欢
把字符串转换为小写形式
问题
你想把字符串转换成小写形式。
解决方案
使用JavaScript的String的toLowerCase()方法:
"ONE TWO THREE".toLowerCase()
# => 'one two ...
AI君
2年前 (2020-03-24) 55℃
0喜欢
字符串插值
问题
你想创建一个字符串,让它包含体现某个CoffeeScript变量的文本。
解决方案
使用CoffeeScript中类似Ruby的字符串插值,而不是JavaScript的字符串拼接。
插值:
muppet = "Beeke...
AI君
2年前 (2020-03-24) 54℃
0喜欢
生成唯一ID
问题
你想随机生成一个唯一的标识符。
解决方案
可以根据一个随机数值生成一个Base 36编码的字符串。
uniqueId = (length=8) ->
id = ""
id += Math.random()...
AI君
2年前 (2020-03-24) 55℃
0喜欢
查找子字符串
问题
你需要搜索一个字符串,并返回匹配的起始位置或匹配值本身。
解决方案
有几种使用正则表达式的方法来实现这个功能。其中一些方法被称为RegExp模式或对象还有一些方法被称为 String 对象。
RegExp 对象
第一种...
AI君
2年前 (2020-03-24) 55℃
0喜欢
大写单词首字母
问题
你想把字符串中每个单词的首字母转换为大写形式。
解决方案
使用“拆分-映射-拼接”模式:先把字符串拆分成单词,然后通过映射来大写单词第一个字母小写其他字母,最后再将转换后的单词拼接成字符串。
("foo bar ba...
AI君
2年前 (2020-03-24) 53℃
0喜欢
转载请注明:www.ainoob.cn » CoffeeScript 字符串...
AI君
2年前 (2020-03-24) 54℃
0喜欢
CoffeeScrip 的 type 函数
问题
你想在不使用typeof的情况下知道一个函数的类型。(要了解为什么typeof不靠谱,请参见 http://javascript.crockford.com/remedial.html。)...
AI君
2年前 (2020-03-24) 52℃
0喜欢
创建一个不存在的对象字面值
问题
你想初始化一个对象字面值,但如果这个对象已经存在,你不想重写它。
解决方案
使用存在判断运算符(existential operator)。
window.MY_NAMESPACE ?= {}
讨论
这...
AI君
2年前 (2020-03-24) 56℃
0喜欢
类的混合
问题
你有一些通用方法,你想把他们包含到很多不同的类中。
解决方案
使用mixOf库函数,它会生成一个混合父类。
mixOf = (base, mixins...) ->
class Mixed extends bas...
AI君
2年前 (2020-03-24) 54℃
0喜欢
克隆对象(深度复制)
问题
你想复制一个对象,包含其所有子对象。
解决方案
clone = (obj) ->
if not obj? or typeof obj isnt 'object'
return obj
i...
AI君
2年前 (2020-03-24) 54℃
0喜欢
类变量和实例变量
问题
你想创建类变量和实例变量(属性)。
解决方案
类变量
class Zoo
@MAX_ANIMALS: 50
MAX_ZOOKEEPERS: 3
helpfulInfo: =>
"Zoos...
AI君
2年前 (2020-03-24) 54℃
0喜欢
类方法和实例方法
问题
你想创建类和实例的方法。
解决方案
类方法
class Songs
@_titles: 0 # Although it's directly accessible, the leading _ defin...
AI君
2年前 (2020-03-24) 55℃
0喜欢
对象的链式调用
问题
你想调用一个对象上的多个方法,但不想每次都引用该对象。
解决方案
在每次链式调用后返回this(即@)对象
class CoffeeCup
constructor: ->
@prope...
AI君
2年前 (2020-03-24) 55℃
0喜欢
转载请注明:www.ainoob.cn » CoffeeScript 类和对象...
AI君
2年前 (2020-03-24) 55℃
0喜欢
For 循环
问题
你想通过一个for循环来迭代数组、对象或范围。
解决方案
# for(i = 1; i<= 10; i++)
x for x in [1..10]
# => [ 1, 2, 3, 4, 5, 6, 7, 8...
AI君
2年前 (2020-03-24) 54℃
0喜欢
嵌入 JavaScript
问题
你想在CoffeeScript中嵌入找到的或预先编写的JavaScript代码。
解决方案
把JavaScript包装到撇号中:
`function greet(name) {
return "Hello...
AI君
2年前 (2020-03-24) 55℃
0喜欢
比较范围
问题
如果你想知道某个变量是否在给定的范围内。
解决方案
使用CoffeeScript的连缀比较语法。
maxDwarfism = 147
minAcromegaly = 213
height = 180
normalHei...
AI君
2年前 (2020-03-24) 55℃
0喜欢
服务端和客户端的代码重用
问题
当你在CoffeeScript上创建了一个函数,并希望将它用在有网页浏览器的客户端和有Node.js的服务端时。
解决方案
以下列方法输出函数:
# simpleMath.coffee
# these m...
AI君
2年前 (2020-03-24) 55℃
0喜欢