【发布时间】:2014-07-24 01:31:00
【问题描述】:
我正在寻找一种使用另一个数组对数组进行排序的方法。 Here 是一个对我有用的答案:
- order_array(我想要的以奇怪顺序排列的 id 数组):
a1 = [34, 54, 12, 43] - 对象列表(我要订购的):
a2 = [ {id: 54, name: "greg"}, {...}, {...}, {...} ] a2.sort_by{|x| a1.index x.id}
这段代码是怎么回事?
【问题讨论】:
-
a1.index(x.id)返回x在a1数组中的位置。sort_by使用该信息对a2数组进行排序。 -
ahhh... 所以,a1.index(x.id) 意味着我们正在为每个 id 分配索引值,有点像 [3, 5, 2, 6].index(2) 会给我'2' 作为答案。然后从那里我们只是按这些索引值排序,当然是 0,1,2,3,4,5 等等!