【问题标题】:How to sort an array based off another array which holds the indexes [duplicate]如何根据另一个保存索引的数组对数组进行排序[重复]
【发布时间】:2017-04-17 18:06:03
【问题描述】:

我有一个数组 a 持有数组 b 应该的位置。

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

我想对 b 进行排序,使其变为

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

它从数组 a 中获取它的索引。

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    看看Array#values_at

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

    【讨论】:

    • 好的,谢谢!我试图使用排序、索引和映射来做到这一点,但对我来说没有用。谢谢!
    【解决方案2】:

    如果您想使用map,方法如下:

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

    【讨论】:

      猜你喜欢
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 2013-12-24
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多