对象数组
问题
你想要得到一个与你的某些属性匹配的数组对象。
你有一系列的对象,如:
cats = [
{
name: "Bubbles"
favoriteFood: "mice"
age: 1
},
...
AI君
2年前 (2020-03-25) 56℃
0喜欢
使用数组来交换变量
问题
你想通过数组来交换变量。
解决方案
使用CoffeeScript的解构赋值语法:
a = 1
b = 3
[a, b] = [b, a]
a
# => 3
b
# => 1
讨论
解构赋值可以不...
AI君
2年前 (2020-03-25) 56℃
0喜欢
检测每个元素
问题
你希望能够在特定的情况下检测出在数组中的每个元素。
解决方案
使用Array.every(ECMAScript 5):
evens = (x for x in [0..10] by 2)
evens.every (x...
AI君
2年前 (2020-03-25) 56℃
0喜欢
更进一步
我们希望,之前的章节给了你一个良好的概述,如何构建一个 Meteor 应用。但是,现在你还要去哪里呢?
额外章节
首先,如果你还没有购买本书的话,你可以购买 Full 或 Premium 版本来阅读本书额外的章节。这些章节将引导...
AI君
2年前 (2020-03-25) 55℃
0喜欢
动画
我们现在有了实时的投票、评分和排名。然而,由于帖子在首页上跳来跳去,导致了跳动不稳的用户体验。我们用动画来平滑这种过渡。
介绍 _uihooks
_uihooks 相对较新,Blaze 文档也未包含该特性。正如其名称所示,它提供了每...
AI君
2年前 (2020-03-25) 54℃
0喜欢
高级发布机制
目前你应该对发布和订阅交互模式有一个不错的掌握了。因此,我们废话少说,来看几个更高级的情景。
多次发布一个集合
在我们第一个关于发布的附录中,我们看到了一些更普遍的发布和订阅模式,同时我们学习了 _publishCursor...
AI君
2年前 (2020-03-25) 54℃
0喜欢
投票
现在我们的系统更完善了,但是想要找到最受欢迎的帖子有点难。我们需要一个排名系统来给我们的帖子排个序。
我们可以建立一个基于 karma 的复杂排名系统,权值随着时间衰减,和许多其他因素(很多功能都在 Telescope 中实现了,他...
AI君
2年前 (2020-03-25) 55℃
0喜欢
分页
Microscope 的功能看起来不错。我们可以想象当它 release 之后会很受欢迎。
因此我们需要考虑一下随着新帖子越来越多所带来的性能问题。
之前我们说过客户端集合会包含服务器端数据的一个子集。我们在帖子和评论集合已经实现了...
AI君
2年前 (2020-03-25) 55℃
0喜欢
高级的响应性
虽然需要你自己写代码来跟踪依赖变量的情况十分罕见,了解依赖变量的工作流程还是十分必要的。
设想我们现在需要跟踪一下 Microscope上,当前用户的 Facebook 朋友在 “like” 某一篇帖子的数量。 让我们假设我...
AI君
2年前 (2020-03-25) 56℃
0喜欢
Notifications
现在用户们可以给帖子添加评论了,让他们互相知道讨论已经开始了是个好主意。
我们将通知帖子的作者已经有用户在他的帖子上添加了评论,并且提供一个链接可以看到评论。
这是 Meteor 真正闪光的特性之一:因为 Me...
AI君
2年前 (2020-03-25) 56℃
0喜欢
打乱数组中的元素
问题
你想打乱数组中的元素。
解决方案
Fisher-Yates shuffle是一种高效、公正的方式来让数组中的元素随机化。这是一个相当简单的方法:在列表的结尾处开始,用一个随机元素交换最后一个元素列表中的最后一个元...
AI君
2年前 (2020-03-25) 55℃
0喜欢
反转数组
问题
你想要反转数组元素。
解决方案
使用 JavaScript Array 的 reverse() 方法:
["one", "two", "three"].reverse()
# => ["three", "two", ...
AI君
2年前 (2020-03-25) 56℃
0喜欢
删除数组中的相同元素
问题
你想从数组中删除相同元素。
解决方案
Array::unique = ->
output = {}
output[@[key]] = @[key] for key in [0...@length]...
AI君
2年前 (2020-03-25) 56℃
0喜欢
归纳数组
问题
你有一个对象数组,想要把它们归纳为一个值,类似于Ruby中的reduce()和reduceRight()。
解决方案
可以使用一个匿名函数包含Array的reduce()和reduceRight()方法,保持代码清晰易懂。...
AI君
2年前 (2020-03-25) 55℃
0喜欢
数组最大值
问题
你需要找出数组中包含的最大的值。
解决方案
你可以使用JavaScript实现,在列表推导基础上使用Math.max():
Math.max [12, 32, 11, 67, 1, 3]...
# => 67
另...
AI君
2年前 (2020-03-25) 55℃
0喜欢
映射数组
问题
你有一个对象数组,想把这些对象映射到另一个数组中,就像 Ruby 的映射一样。
解决方案
使用 map() 和匿名函数,但不要忘了还有列表推导。
electric_mayhem = [ { name: "Doctor Te...
AI君
2年前 (2020-03-25) 55℃
0喜欢
列表推导
问题
你有一个对象数组,想将它们映射到另一个数组,类似于Python的列表推导。
解决方案
使用列表推导,但不要忘记还有[mapping-arrays]( http://coffeescript-cookbook.github....
AI君
2年前 (2020-03-25) 54℃
0喜欢
筛选数组
问题
你想要根据布尔条件来筛选数组。
解决方案
使用Array.filter (ECMAScript 5): array = [1..10]
array.filter (x) -> x > 5
# => [6,...
AI君
2年前 (2020-03-25) 54℃
0喜欢
定义数组范围
问题
你想定义一个数组的范围。
解决方案
在CoffeeScript中,有两种方式定义数组元素的范围。
myArray = [1..10]
# => [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
...
AI君
2年前 (2020-03-25) 55℃
0喜欢
由数组创建一个字符串
问题
你想由数组创建一个字符串。
解决方案
使用JavaScript的数组方法toString():
["one", "two", "three"].toString()
# => 'one,two,three...
AI君
2年前 (2020-03-25) 56℃
0喜欢