前提・実現したいこと
Rubyで二次元配列の合計を求めるメソッドをつくろうとしているのですが,実現できません。
以下のように実行させたいです。
sum [[1,4],[5,6]]
=> 16
発生している問題・エラーメッセージ
sum [[1,4],[5,6]]
=> nil
nil
と表示されてしまいます.
該当のソースコード
def sum(arr)
arr = Array.new{(Array.new)} ; p arr.inject(:+)
end
試したこと
Rubyが古くsumは使えないのでsum以外の方法で実現したいです。
補足情報(FW/ツールのバージョンなど)
Rubyのversionは2.0です。
そちらの ruby で flatten は使えますか? [[1,4],[5,6]].flatten
使えないです。
rubyのバージョンをていじすると、回答がつきやすくなるかと思います。
はい、了解です。ruby のバージョンを質問に追記しておくと良いかと思います。
version 2.0です
2.0ならflattenは使えますね。
https://docs.ruby-lang.org/ja/2.0.0/class/Array.html#I_FLATTEN
勘違いしておりました。申し訳ないです。ですが,flattenを使う場合でも合計を出力する方法がわかりません。
ご自身で書かれたコードを一部変更すれば合計を求める事ができますよ。
def sum(arr)
arr = Array.new{(Array.new)} ; arr.flatten ; p arr.inject(:+)
end
まず配列を与えて次にflattenで平坦化させてその配列の中身を合計すると考えたのですが,
nil
=>nil
となってしまいます。2段でnilが表示される意味もわかりません。根本的に何か間違えているのでしょうか。
> まず配列を与えて
引数ですでに与えられてます
回答1件
あなたの回答
tips
プレビュー