我想对数组排序:
initial_array = ['23', '504', '2']
基于每个元素的数字之和。转换后的数组为:
[5, 9, 2]
通过映射对数组进行排序:
chars.map(&:to_i).reduce(:+)
给出排序后的转换数组:
sorted_transformed_array # => [2, 5, 9]
排序后的初始数组为:
['2', '23', '504']
如何根据initial_array
对sorted_transformed_array
进行排序?有没有这样做的方法?
与sort_by!
方法有什么区别?
答案 0 :(得分:3)
与sort_by
方法结合使用该转换/计算
红宝石2.4之前
array.sort_by { |item| item.chars.map(&:to_i).reduce(0, :+) }
从ruby 2.4开始
array.sort_by { |item| item.chars.map(&:to_i).sum }