Forkwell
2015/12/10 15:03:08 投稿
0

【Refactor Me】複数の配列の要素を並び替えるコードをリファクタリング

<p>リファクタリングのネタが思いつかない方のために、beforeコードを用意しました。<br><br> このbeforeコードをリファクタリングしてくれた方にも <img alt="sushi" src="/assets/emoji/unicode/1f363-831097849a370c02369283b17255c6e4f0ffe9e0a1269610119e49b26401f621.png" style="vertical-align:middle" width="20" height="20" /> のチャンスがあります! </p> <p>beforeコードをコピーして新規投稿を作成してね! </p>

Before

def sort_lists(a, b)
  a.sort!
  b.sort!
  b.size.times do |i|
    a.size.times do |j|
      x, y = a[j], b[i]
      if y < x
        a[j] = y
        b[i] = x
      else
        next
      end
    end
  end
  b.sort!

  [a, b]
end

require 'minitest/autorun'

class TestSortLists < Minitest::Test
  def test_sort_lists
    data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'].shuffle
    assert_equal([['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h']], sort_lists(data[0..3], data[4..7]))
  end
end

After

# your cool code

みんなのコメント