红宝石,在一个字符串数组和字符串/整数替换值 [英] Ruby, replacing values in a string array with strings/ints
本文介绍了红宝石,在一个字符串数组和字符串/整数替换值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想更换一个新的数组的数组,因为我走替换值。
这里的code:
minesarray = ['*','','',''],['','','*','。'] ,['。','。','。','。']]高清pp_board(板)
把Array.new(板[0] .size * 2 + 1,' - ')加入('')。
board.each做|一行|
看跌期权| + row.join(|)+|
把Array.new(row.size * 2 + 1,' - ')加入('')。
结束
结束pp_board(minesarray)数= 0minesarray.map {|一行|
row.each {|山口|
如果minesarray [行] [山口] ='*'
minesarray [行] [山口] =一个
ELIF minesarray [行] [山口] =''
minesarray [行] [山口] = 0
结束
}
}
我收到以下错误:
mines2.rb:17:在'[]':不能转换成数组整数(类型错误)
从mines2.rb:17:在块(2级)中(主)
从mines2.rb:16:在每个'
从mines2.rb:16:'块(主)
从mines2.rb:15:在地图
从mines2.rb:15:在(主)
解决方案
的行
和山坳
不是该阵列的索引,但该元素本身。
您可以做象下面这样:
minesarray = ['*','','',''],['','','*','。'] ,['。','。','。','。']]高清pp_board(板)
把Array.new(板[0] .size * 2 + 1,' - ')加入('')。
board.each做|一行|
看跌期权| + row.join(|)+|
把Array.new(row.size * 2 + 1,' - ')加入('')。
结束
结束pp_board(minesarray)minesarray = minesarray.map {|一行|
row.map {| V |
当v =='*'
'一个'
ELSIF v =='。
'0'
结束
}
}pp_board(minesarray)
I'm trying to replace an array with a new array, replacing values as I go along.
Here's the code:
minesarray = [['*','.','.','.'],['.','.','*','.'],['.','.','.','.']]
def pp_board(board)
puts Array.new(board[0].size*2+1, '-').join('')
board.each do |row|
puts "|" + row.join("|") + "|"
puts Array.new(row.size*2+1, '-').join('')
end
end
pp_board(minesarray)
count = 0
minesarray.map{ |row|
row.each { |col|
if minesarray[row][col] = '*'
minesarray[row][col]="a"
elif minesarray[row][col] = '.'
minesarray[row][col] = 0
end
}
}
I receive the following error:
mines2.rb:17:in '[]': can't convert Array into Integer (TypeError)
from mines2.rb:17:in 'block (2 levels) in (main)'
from mines2.rb:16:in 'each'
from mines2.rb:16:in 'block in (main)'
from mines2.rb:15:in 'map'
from mines2.rb:15:in '(main)'
解决方案
The row
and col
is not the index of the array, but the element itself.
You could do like below:
minesarray = [['*','.','.','.'],['.','.','*','.'],['.','.','.','.']]
def pp_board(board)
puts Array.new(board[0].size*2+1, '-').join('')
board.each do |row|
puts "|" + row.join("|") + "|"
puts Array.new(row.size*2+1, '-').join('')
end
end
pp_board(minesarray)
minesarray = minesarray.map { |row|
row.map { |v|
if v == '*'
'a'
elsif v == '.'
'0'
end
}
}
pp_board(minesarray)
这篇关于红宝石,在一个字符串数组和字符串/整数替换值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文