我试图通过解决Code Wars问题来改进我的编码,并以特定的方式进行编码。首先,我尝试自己编写代码。如果我做了几次谷歌搜索(堆栈交换)来排除故障。如果我没有解开问题的答案,然后彻底检查它并以书面形式表述代码,那么我就能理解答案中的代码。那么,今天我不得不选择后者。需要帮助了解我的Ruby方法中的.sort_by块
我理解了代码的大部分份额,但是我对第四行中的代码的理解有点摇摆不定。我已经围绕Rubydocs上的这段代码所使用的方法进行了大量的研究,但仍然感觉在黑暗中。有人能说清楚它是否适合我吗?我也正在寻找围绕我目前的代码清晰度的任何类型的建议。
def letter_frequency(text)
chars = text.downcase.scan(/[a-zA-Z]/).sort
chars.map { |x| [x, chars.count(x)] }.uniq
.sort_by { |y| [-y[1], y[0]] }
end
设置“字符”变量为文本(参数),小写, 扫描并返回范围AZ或AZ之间的任何单个性格特征,和 然后排序它们低到高。
使用.MAP设置一个关键变量与总数返回所有charecters 的提交阵列内的键(X), 然后让所有charecteds唯一与.uniq方法。
然后排序与使用“Y”键返回负/正数的所有 及其计数提交 阵列中的给定块。
万分感谢!
您的方法实现与原始行为不同;它不会按字母顺序排列。 – Kimball