我正在尝试编写一个转置方法,但它对我来说并不合适.代码如下:
def my_transpose(array)
new_matrix= Array.new
v_entries= 0
h_entries= 0
while v_entries < array.length
while h_entries < array.length
new_matrix[h_entries] << ([array[h_entries][v_entries]])
h_entries +=1
end
v_entries +=1
h_entries= 0
end
new_matrix
end
array = [[1,2,3], [4,5,6], [7,8,9]]
Run Code Online (Sandbox Code Playgroud)
我想让my_transpose(数组)给我:
[[1,4,7], [2,5,8], [3,6,9]]
Run Code Online (Sandbox Code Playgroud)
我尝试添加
new_matrix[h_entries] << ([array[h_entries][v_entries]])
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误
"未定义的方法`<<'为nil:NilClass"
任何见解都会很棒.
在你的第一个循环迭代new_matrix[h_entries]中nil.所以,你不能使用<<它的方法.
尝试将其初始化为空数组,如果是nil:
new_matrix[h_entries] ||= []
new_matrix[h_entries] << ([array[h_entries][v_entries]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1932 次 |
| 最近记录: |