嘿我有一个数组,其中每个元素都是一个包含几个值和一个计数的哈希.
result = [
{"count" => 3,"name" => "user1"},
{"count" => 10,"name" => "user2"},
{"count" => 10, "user3"},
{"count" => 2, "user4"}
]
Run Code Online (Sandbox Code Playgroud)
我可以按如下方式对数组进行排序:
result = result.sort_by do |r|
r["count"]
end
Run Code Online (Sandbox Code Playgroud)
现在我希望能够根据计数检索前n个条目(不仅仅是第一个(n))是否有一种优雅的方式来做到这一点?所以作为一个例子,让n = 1我期望得到一个结果集.
[{"count" => 10,"name" => "user2"}, {"count" => 10, "user3"}]
Run Code Online (Sandbox Code Playgroud)
因为我要求得分最高的所有参赛作品..如果我要求获得前2名最高分
[{"count" => 10,"name" => "user2"}, {"count" => 10, "user3"}, {"count" => 3, "user1"}]
Run Code Online (Sandbox Code Playgroud) 我有一个node.js tcp服务器,用作iPhone聊天客户端的后端.由于我的实现包括私人群聊,我在内存中存储用户列表及其所属的聊天室,以便适当地路由消息.这一切都很好,假设我的聊天服务器总是在一台机器上,但是当我需要横向扩展时,我需要一种向连接到不同服务器的客户端广播消息的好方法.我不想开始在节点服务器之间进行进程间通信,而是希望与redis共享状态.
我有一些想法,但我想知道是否有人有一个很好的解决方案吗?这里要清楚的是一个例子:
用户1连接到房间X上的服务器1,用户2连接到房间X上的服务器2.用户1发送消息,我需要将其传递给用户2,但由于我使用内存数据结构,服务器不应该分享国家.我希望我的节点服务器尽可能保持愚蠢,这样我就可以添加/删除我的系统需求.
谢谢 :)