gpt4 book ai didi

ruby - 根据给定顺序对数字数组进行排序

转载 作者:数据小太阳 更新时间:2023-10-29 07:09:52 25 4
gpt4 key购买 nike

我有两个数组。第一个数组包含排序顺序。第二个数组包含任意数量的元素。

我的属性是保证第二个数组中的所有元素(按值)都在第一个数组中,而且我只处理数字。

A = [1,3,4,4,4,5,2,1,1,1,3,3]
Order = [3,1,2,4,5]

当我对 A 进行排序时,我希望元素按照 Order 指定的顺序出现:

[3, 3, 3, 1, 1, 1, 1, 2, 4, 4, 4, 5]

请注意,重复是公平的游戏。 A 中的元素不应更改,只能重新排序。我该怎么做?

最佳答案

>> 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]

关于ruby - 根据给定顺序对数字数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10574046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com