Project1
标题: 【ruby初学者】二维数组迭代赋值的问题 [打印本页]
作者: deadseifer 时间: 2017-4-4 20:45
标题: 【ruby初学者】二维数组迭代赋值的问题
这个问题完全是Ruby的问题,我不知道发没发对区,请见谅。
我的目的:从data这个数组中逐个提取每一个元素,然后分别赋值给二维数组的每一个ary[x][3]和ary[x][4]
我举例子解释一下:
就是ary[0][3], ary[0][4], ary[1][3], ary[1][4], ary[2][3], ary[2][4]...等等等。
下面是我写的代码,运行时候报错 “in `block in <top (required)>': undefined method `[]=' for nil:NilClass (NoMethodError)”
希望得到各位高手的指点和解答,而且我觉得我的思路不是很好,还请高手点播,谢谢各位!!!
data=[12,13,13,13,15,14,15,16,15,19]
ary=Array.new(5){Array.new(6)}
c=0
d=3
data.each do |i|
if d==3
ary[c][d] = i
c+=1
d+=1
else
ary[c][d] = i
c+=1
d-=1
end
end
puts ary
data=[12,13,13,13,15,14,15,16,15,19]
ary=Array.new(5){Array.new(6)}
c=0
d=3
data.each do |i|
if d==3
ary[c][d] = i
c+=1
d+=1
else
ary[c][d] = i
c+=1
d-=1
end
end
puts ary
作者: RaidenInfinity 时间: 2017-4-4 21:19
data=[12,13,13,13,15,14,15,16,15,19]
ary=Array.new(5){Array.new(6)}
data.each_with_index do |v, i|
a = i / 2
b = 3 + i % 2
ary[a][b] = v
end
p ary
#输出:[[nil, nil, nil, 12, 13, nil], [nil, nil, nil, 13, 13, nil], [nil, nil, nil, 15, 14, nil], [nil, nil, nil, 15, 16, nil], [nil, nil, nil, 15, 19, nil]]
data=[12,13,13,13,15,14,15,16,15,19]
ary=Array.new(5){Array.new(6)}
data.each_with_index do |v, i|
a = i / 2
b = 3 + i % 2
ary[a][b] = v
end
p ary
#输出:[[nil, nil, nil, 12, 13, nil], [nil, nil, nil, 13, 13, nil], [nil, nil, nil, 15, 14, nil], [nil, nil, nil, 15, 16, nil], [nil, nil, nil, 15, 19, nil]]
a和b的算法:
arr = [0,1,2,3,4,5,6,7,8,9,10]
p arr.map {|i| i / 2} #输出: [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
p arr.map {|i| 3 + i % 2} #输出: [3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4]
arr = [0,1,2,3,4,5,6,7,8,9,10]
p arr.map {|i| i / 2} #输出: [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
p arr.map {|i| 3 + i % 2} #输出: [3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4]
作者: deadseifer 时间: 2017-4-4 21:35
感谢版主大人!!!
我明白你的思路了!!!
然后如果可以的话,请问能不能告诉我我写的代码为什么会报NoMethodError呢?
非常感谢!
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |