我有两个数组.第一个数组包含排序顺序.第二个数组包含任意数量的元素.
我有一个属性,保证第二个数组中的所有元素(按值)保证在第一个数组中,我只使用数字.
A = [1,3,4,4,4,5,2,1,1,1,3,3]
Order = [3,1,2,4,5]
Run Code Online (Sandbox Code Playgroud)
当我排序时A,我希望元素按照指定的顺序出现Order:
[3, 3, 3, 1, 1, 1, 1, 2, 4, 4, 4, 5]
Run Code Online (Sandbox Code Playgroud)
请注意,重复是公平的游戏.A中的元素不应更改,只能重新排序.我怎样才能做到这一点?
Gar*_*eth 11
>> source = [1,3,4,4,4,5,2,1,1,1,3,3]
=> [1, 3, 4, 4, 4, 5, 2, 1, 1, 1, 3, 3]
>> target = [3,1,2,4,5]
=> [3, 1, 2, 4, 5]
>> source.sort_by { |i| target.index(i) }
=> [3, 3, 3, 1, 1, 1, 1, 2, 4, 4, 4, 5]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |