设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2290|回复: 4
打印 上一主题 下一主题

[讨论] 【ruby初学者】二维数组迭代赋值的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
730
在线时间
93 小时
注册时间
2010-10-28
帖子
32
跳转到指定楼层
1
发表于 2017-4-4 20:45:45 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
这个问题完全是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)”
希望得到各位高手的指点和解答,而且我觉得我的思路不是很好,还请高手点播,谢谢各位!!!
RUBY 代码复制
  1. data=[12,13,13,13,15,14,15,16,15,19]
  2. ary=Array.new(5){Array.new(6)}
  3.  
  4. c=0
  5. d=3
  6. data.each do |i|
  7.   if d==3
  8.   ary[c][d] = i
  9.   c+=1
  10.   d+=1
  11.   else
  12.     ary[c][d] = i
  13.     c+=1
  14.     d-=1
  15.   end
  16. end
  17.  
  18. puts ary

评分

参与人数 1星屑 +150 收起 理由
唯道集虚 + 150 赞学术帖(x

查看全部评分

Lv2.观梦者

梦石
0
星屑
730
在线时间
93 小时
注册时间
2010-10-28
帖子
32
3
 楼主| 发表于 2017-4-4 21:35:03 | 只看该作者
RaidenInfinity 发表于 2017-4-4 21:19
data=[12,13,13,13,15,14,15,16,15,19]
ary=Array.new(5){Array.new(6)}

感谢版主大人!!!
我明白你的思路了!!!
然后如果可以的话,请问能不能告诉我我写的代码为什么会报NoMethodError呢?

非常感谢!

点评

@RaidenInfinity 我懂了 …………真的是太感谢了!  发表于 2017-4-4 23:04
请参考VA区置顶的脚本错误指南帖。  发表于 2017-4-4 22:17
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
6901
在线时间
7028 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

2
发表于 2017-4-4 21:19:55 | 只看该作者
RUBY 代码复制
  1. data=[12,13,13,13,15,14,15,16,15,19]
  2. ary=Array.new(5){Array.new(6)}
  3.  
  4. data.each_with_index do |v, i|
  5.     a = i / 2
  6.     b = 3 + i % 2
  7.     ary[a][b] = v
  8. end
  9.  
  10. p ary
  11. #输出:[[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的算法:
RUBY 代码复制
  1. arr = [0,1,2,3,4,5,6,7,8,9,10]
  2. p arr.map {|i| i / 2} #输出: [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
  3. p arr.map {|i| 3 + i % 2} #输出: [3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-23 17:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表