关于正则表达式:使用ruby将字符串中的单词组合成字谜

Combining words in a string into anagrams using ruby

我想制作一个程序,在其中我可以将字母符号的字符排序和存储到单独的组中。对于ex表示字符串:

"四个疤痕膏的尖叫车"答案应该是:

1
[["scream","creams"], ["cars","scar"], ["for"], ["four"]]

在上面,我使用了代码:

1
2
here = self.split()
there = here.group_by { |x| x.downcase.chars.sort}.values

然后我得到了必需的答案。但是当我将代码更改为:

1
2
here = self.split()
there = here.group_by { |x| x.downcase.chars.sort}

我得到了答案:

1
{["a","c","e","m","r","s"]=>["scream","creams"], ["a","c","r","s"]=>["cars","scar"], ["f","o","r"]=>["for"], ["f","o","r","u"]=>["four"]}

我想知道为什么现在是这样?我使用了反复试验法得到了答案。


正如Yevgeniy Anfilofyev所评论的那样,值是一种方法,因此它是

Returns a new array populated with the values from hash

同时,如果删除方法values,则将获得整个散列,而不仅是值的array