2016-10-20 3 views
0

CSVファイルを解析する際に、行のフィールドを4番目のフィールド(3番目の配列要素)から始まる配列に結合する必要があります。私は、以下の例のように各行を操作したい: オリジナル配列:Rubyで配列の一部をサブ配列に変換する他の方法は?

array1 = [1,2,3,4,5] 

変更配列:

array2 = [1,2,3,[4,5]] 

を私のコードはここにある:

array1[0..2].push(array1[3..array1.length]) 

=> [1, 2, 3, [4, 5]] 

私の質問は:あり配列の一部をサブ配列に変換するための、より良い/クリーナー/シンプルな方法?

答えて

2

ありがとうございます!あなたはこれを行うことができます a = a[0..2] + [a[3..-1]]。ルビーでは配列を連結するのに+を使うことができます。さらに、n..-1は配列の最後にnという要素を与えます。注意点として、+concatよりも遅く、より高価です。a[0..2].concat([a[3..-1])を行う場合、それはより安くて速くなります。

+0

実際、このような結果の配列が必要であることがわかりました。 '[" 1 "、" 2 "、" 3 "、[4,5]]' - 部分配列の文字列を整数に変換します。あなたの提案を利用して私のコードは次のようになります: – clonecq

+0

'a = [" 1 "、" 2 "、" 3 "、" 4 "、" 5 "]' 'a = a [0..2] .concat([a [3 ..- 1] .map(&:to_i)])これは改善できますか?申し訳ありませんが、私はこのコメント – clonecq

+0

(含むことを忘れてしまった)を編集することができるようです。 – clonecq

関連する問題