假设我在ruby中有以下哈希表,
H = {"I"=>3, "Sam"=>2, "am"=>2, "do"=>1, "not"=>1, "eat"=> 1}
我想从H
构造以下哈希表N. N = {"1" => 3, "2"=>2, "3"=>1}
其中3的值表示H中值为“1”的哈希值的数量(例如"do"=>1, "not"=>1, "eat"=> 1
,因此"1" => 3
)
在ruby中有什么简单的方法可以从H ??
构造N哈希表提前致谢!!!
答案 0 :(得分:4)
Hash[H.values.group_by{|i| i}.map {|k,v| [k, v.count]}]
更新:将字符串作为键并按键排序:
Hash[h.values.group_by{|i| i}.map {|k,v| [k.to_s, v.count]}.sort]
答案 1 :(得分:0)
试试这个,
N = {}
H.values.each { |t| N["#{t}"] = (N["#{t}"] || 0) + 1}
答案 2 :(得分:0)
替代解决方案:
app.controller('TestClickController', function($scope) {
$scope.testText = '';
$scope.clickFunc = function() {
$scope.testText = 'User clicked';
};
});