我误会了吗?'?

时间:2017-08-30 04:01:44

标签: arrays ruby

我有:

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

2如何是二维数组的最小值,其中有三个0实例和三个1实例?

我误解了min函数,还是我误解了使用二维数组时发生了什么?

2 个答案:

答案 0 :(得分:3)

[1][0]调用第一个数组时,您从中获取第二个数组[2, 1],然后从数组2中获取第一个数字。

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

答案 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]