次のようなRubyのハッシュ配列があります。
domains = [
{ "country" => "Germany"},
{"country" => "United Kingdom"},
{"country" => "Hungary"},
{"country" => "United States"},
{"country" => "France"},
{"country" => "Germany"},
{"country" => "Slovakia"},
{"country" => "Hungary"},
{"country" => "United States"},
{"country" => "Norway"},
{"country" => "Germany"},
{"country" => "United Kingdom"},
{"country" => "Hungary"},
{"country" => "United States"},
{"country" => "Norway"}
]
編集::
したがって、この形式で(CouchDBから)返される場合:
domains= {"total_rows":55717,"offset":0,"rows": [
{"country":"Germany"},
{"country":"United Kingdom"},
{"country":"Hungary"},
{"country":"United States"},\ \
{"country":"France"},
{"country":"Germany"},
{"country":"Slovakia"},
{"country":"Hungary"},
{"country":"United States"},
{"country":"Norway"},
{"country":"Germany"},
{"country":"United Kingdom"},
{"country":"Hungary"},
{"country":"United States"},
{"country":"Norway"}]
}
同じプロセスを適用するにはどうすればよいですか。つまり、配列内に埋め込まれたアイテムにアクセスしますか?
Rubyを使用して、配列を相互作用し、次のように重複する値を削除できます。
counted = Hash.new(0)
domains.each { |h| counted[h["country"]] += 1 }
counted = Hash[counted.map {|k,v| [k,v.to_s] }]
次のような出力は次のようになります。
{"Germany"=>"3",
"United Kingdom"=>"2",
"Hungary"=>"3",
"United States"=>"3",
"France"=>"1",
"Slovakia"=>"1",
"Norway"=>"2"}
私の質問は、おそらくアンダースコアのようなライブラリを使用してJavascriptを使用して同じことを達成するための最良の方法は何ですか?
よろしくお願いします、
カールスキー