给出一个如下所示的哈希:
{
"one":[ [ 46, 51 ], [ 46 ], [ 48 ] ],
"two":[ [ 50, 51 ], [ 46, 51 ], [ 46, 51 ] ]
}
如何在Rails中映射它以便我们可以获得所有数组中的项目总数?这样我们就可以得到这个结果:
{
"one": 4,
"two": 6
}
我对使用map
感到有点困惑,因为它不会让我保留密钥。
答案 0 :(得分:3)
您也可以使用它来保留键
echo "<option value='".$row["type_sport"]."'> ".$row["type_sport"]."</option>";
答案 1 :(得分:2)
使用hash.transform_values { |v| v.flatten.count }
#=> {:one=>4, :two=>6}
:
class MySentences(object):
def __init__(self, dirname):
self.dirname = dirname
def __iter__(self):
for fname in os.listdir(self.dirname):
for line in open(os.path.join(self.dirname, fname)):
yield line.split()
答案 2 :(得分:1)
通常,您只需使用flatten来合并嵌套数组。因此,如果您想要更新现有的哈希,您可以
your_hash.each { |key, value| your_hash[key] = value.flatten.count }
否则我会说你做了
new_hash = {}
your_hash.each { |key, value| new_hash[key] = value.flatten.count }