2017-08-30 18 views
0

私は「分」を誤解していますか?私が持っている

array1 = [[0, 0], [2, 1]] 
array2 = [[1, 0], [3, 1]] 

私は、こうであるべきだと考え:

array1[1][0] == [0, 2] 
array2[1][0] == [0, 3] 

これに続いて、なぜそれが次のコード、

[array1[1][0], array2[1][0]].min # => 2 

戻り2ということでしょうか?

0の3つのインスタンスと1の3つのインスタンスが存在する2次元配列のうち、2はどのように最小値ですか。

私はmin関数を誤解していますか、または2次元配列を使用すると何が起こっているのか誤解していますか?

+1

_「私はこうであるべきだと考え[...] "_ - あなたの前提を確認し、[irb](h ttp://ruby-doc.org/stdlib-2.0.0/libdoc/irb/rdoc/IRB.html)、 'array1 = [[0、0]、[2、1]]'と入力し、次に 'array1 [ 1] [0] 'である。 – Stefan

+0

私の許可なく私の神の邪悪なポストを編集したのは誰ですか? –

+1

ヘルプセンターを参照する>特権> [質問と回答を編集](https://stackoverflow.com/help/privileges/edit):_ "コミュニティ編集の力を信じています。つまり、十分な評判を得たら、 **あなたの投稿だけでなく、**誰の投稿でも!** "_ – Stefan

答えて

3

[1][0]最初の配列を呼び出すときは、[2, 1]から2番目の配列を取り出し、取得した配列2の最初の番号を取得します。

array1[1][0] => 2 
array2[1][0] => 3 
[2, 3].min => 2 
+0

待ってください。つまり、最初の括弧は[0、0]と[2、1]を表し、2番目の括弧は0、0、2、または1のいずれかになります。 array1 [1] [1]を呼び出すと、[0,0]を見て、配列内のその配列から2番目のゼロを呼び出していますか? したがって、この形式は一般的に次のように解釈されます。 arrayofarraysname [arraywithinarray] [elementofarray]? –

+0

@AaronGodhard '[]'はオブジェクトを返すメソッド呼び出しです。受信機が配列の場合、戻り値は指定されたインデックスのオブジェクト(ゼロベース)なので、 'array1 [1]'は2番目の要素を返します。その要素が配列でもある場合、 'array1 [1] [1]'は2番目の要素を返します。また、 'subarray = array [1]'と書いて、 'subarray [1]'を後で呼び出すこともできます。同じ結果。 – Stefan

+0

@stefanあなたの答えは私の質問を完全に言い換えます - ありがとう。 基本的に私は間違った言葉で考えていました。私は両方のサブアレイを呼び出すことはありません、私は1つのサブ配列を呼び出しています。 –

1

それはのように行く:あなたの反事実仮定の下で

array1[1][0] == [2, 1][0] == 2 
array2[1][0] == [3, 1][0] == 3 
[array1[1][0], array2[1][0]].min == [2, 3].min # => 2 

array1[1][0] == [0, 2] 
array2[1][0] == [0, 3] 

比較は次のようになります。

[array1[1][0], array2[1][0]].min == [[0, 2], [0, 3]].min # => [0, 2] 
関連する問題