質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

2173閲覧

Rubyで二次元配列の合計を求めたい

begineryamada

総合スコア1

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2021/12/27 06:13

編集2021/12/27 06:42

前提・実現したいこと

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です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2021/12/27 06:21

そちらの ruby で flatten は使えますか? [[1,4],[5,6]].flatten
tatsu99

2021/12/27 06:35 編集

rubyのバージョンをていじすると、回答がつきやすくなるかと思います。
melian

2021/12/27 06:34

はい、了解です。ruby のバージョンを質問に追記しておくと良いかと思います。
begineryamada

2021/12/27 06:44

勘違いしておりました。申し訳ないです。ですが,flattenを使う場合でも合計を出力する方法がわかりません。
melian

2021/12/27 06:48

ご自身で書かれたコードを一部変更すれば合計を求める事ができますよ。
begineryamada

2021/12/27 07:02

def sum(arr) arr = Array.new{(Array.new)} ; arr.flatten ; p arr.inject(:+) end まず配列を与えて次にflattenで平坦化させてその配列の中身を合計すると考えたのですが, nil =>nil となってしまいます。2段でnilが表示される意味もわかりません。根本的に何か間違えているのでしょうか。
ozwk

2021/12/27 07:27

> まず配列を与えて 引数ですでに与えられてます
guest

回答1

0

ベストアンサー

1例ですけど。

ruby

1def sum(arr) 2 s = 0 3 arr.flatten.map{|i| s += i} 4 return s 5end 6 7p sum [[1,4],[5,6]] 8

結果
16

投稿2021/12/27 07:24

tatsu99

総合スコア5470

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

begineryamada

2021/12/27 07:27

ありがとうございます,自分の間違いも理解できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問