如何根据另一个包含索引的数组对数组进行排序

时间:2017-04-17 18:06:03

标签: ruby-on-rails ruby

我有一个数组a,它保存数组b的位置。

a = [3, 2, 0, 1]
b = ["hello", "hi", 2332, "ben"]

我想对b进行排序,以便它变为

["ben", 2332, "hello", "hi"]

从数组a得到它的索引。

2 个答案:

答案 0 :(得分:8)

查看Array#values_at

b = ["hello", "hi", 2332, "ben"]
a = [3, 2, 0, 1]

p b.values_at(*a)  # => ["ben", 2332, "hello", "hi"]

答案 1 :(得分:1)

如果您想使用map,请参阅:

b = ["hello", "hi", 2332, "ben"]
a = [3, 2, 0, 1]
a.map{|i| b[i]}  # => ["ben", 2332, "hello", "hi"]