такого рода ситуаций возникает так часто с хэшами Ruby, я написал методы для их решения в моем драгоценном камне y_support
. Во-первых, введите в командной строке gem install y_support
, а затем:
require 'y_support/core_ext/hash'
h = { ["word"]=>1, ["cat"]=>2, ["tree"]=>1, ["dog"]=>1 }
h.with_keys &:first
#=> {"word"=>1, "cat"=>2, "tree"=>1, "dog"=>1}
Другой способ написания такой же будет
h.with_keys do |key| key[0] end
Другие полезные методы, определенные в y_support
жемчужину являются Hash#with_values
, Hash#with_keys!
, Hash#with_values!
(вклю- версии модификации места) и Hash#modify
, который «сопоставляет хэш хэш» таким же образом, как и Array#map
, сопоставляет массив массиву.
Построить новый хэш с правильными ключами. –
Это звучит как проблема [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Может быть, вы должны понять, почему ваши ключи создаются как массивы? Скорее всего, вы делаете что-то не так, когда создается хэш, и теперь вы пытаетесь очистить. –
Я получаю дубликаты из строки: фраза = «собака и собака» – tbrooke