小编Emm*_*l P的帖子

从ruby哈希值数组中获取前n个元素

嘿我有一个数组,其中每个元素都是一个包含几个值和一个计数的哈希.

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)

ruby arrays sorting

9
推荐指数
1
解决办法
2万
查看次数

Node.js是多台机器上的tcp套接字服务器

我有一个node.js tcp服务器,用作iPhone聊天客户端的后端.由于我的实现包括私人群聊,我在内存中存储用户列表及其所属的聊天室,以便适当地路由消息.这一切都很好,假设我的聊天服务器总是在一台机器上,但是当我需要横向扩展时,我需要一种向连接到不同服务器的客户端广播消息的好方法.我不想开始在节点服务器之间进行进程间通信,而是希望与redis共享状态.

我有一些想法,但我想知道是否有人有一个很好的解决方案吗?这里要清楚的是一个例子:

用户1连接到房间X上的服务器1,用户2连接到房间X上的服务器2.用户1发送消息,我需要将其传递给用户2,但由于我使用内存数据结构,服务器不应该分享国家.我希望我的节点服务器尽可能保持愚蠢,这样我就可以添加/删除我的系统需求.

谢谢 :)

redis node.js

5
推荐指数
1
解决办法
2432
查看次数

标签 统计

arrays ×1

node.js ×1

redis ×1

ruby ×1

sorting ×1