sliceに関するkiyo_hikoのブックマーク (3)
-
概要 ある配列を任意の長さnずつ分解したいです。 例えば、 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] を [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10]] にしたいということです。 簡単にできるんです。そう Enumerable#each_slice ならね。 array = (0..10).to_a #=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] array.each_slice(3).to_a #=> [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10]] require 'active_support/core_ext/array/grouping' array = (0..10).to_a #=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9
-
ActiveSupportによる既存Rubyクラスの拡張は人間をダメにするんじゃないかと思いますが、知っていると周りのプログラマに差をつけられるテクニックが満載だと思います。今回はHashの拡張メソッドの話。 よくあるコード some_hash = { key_a: "some content", key_b: "some content", key_c: "some content" } # :key_aと:key_bを取り出したい some_hash.select{|k, _| %i(key_a key_b).include? k} #=> {key_a: ..., key_b: ...} # :key_cを除外したい some_hash.reject{|k, _| k == :key_c} #=> {key_a: ..., key_b: ...} some_hash = { key_
-
-
1