Rai*_*ner 1 ruby ruby-on-rails ruby-on-rails-3
我有两个数组:
a = [6, 4, 3]
b = [1, 3, 4]
Run Code Online (Sandbox Code Playgroud)
我打电话给a.sort:
a.sort = [3, 4, 6]
Run Code Online (Sandbox Code Playgroud)
如何对数组进行排序,b以使值与排序前的数组中的值具有相同的位置a?
它现在是:
b = [4, 3, 1]
Run Code Online (Sandbox Code Playgroud)
因此,值b与数组中的值具有相同的位置a.
Anu*_*rag 12
您可以使用该zip方法将两个数组合并为一个.一旦你结合a和b,你会得到,
[[6, 1], [4, 3], [3, 4]]
Run Code Online (Sandbox Code Playgroud)
现在对数组进行排序,这将根据每个子数组的第一个元素对它们进行排序,
[[3, 4], [4, 3], [6, 1]]
Run Code Online (Sandbox Code Playgroud)
现在我们想要执行zip的反向,以将每个子数组的第一个和第二个元素转换为新数组.使用transpose,我们可以将其恢复为原始形式,
[[3, 4, 6], [4, 3, 1]]
Run Code Online (Sandbox Code Playgroud)
谢天谢地,使用并行分配可以在一行中完成所有这些.这是完整的代码,
x, y = a.zip(b).sort.transpose
Run Code Online (Sandbox Code Playgroud)
现在x应该包含[3, 4, 6],并且y应该包含[4, 3, 1].
| 归档时间: |
|
| 查看次数: |
695 次 |
| 最近记录: |