【发布时间】:2014-09-24 05:34:16
【问题描述】:
win_array = [ ["TL", "TM", "TR"], ["ML", "MM", "MR"], ["BL", "BM", "BR"],
["TL", "ML", "BL"], ["TM", "MM", "BM"] , ["TR", "MR", "BR"],
["TL", "MM", "BR"], ["TR", "MM", "BL"] ]
win_array[0].map! {|x| x == "TR" ? "1" : x } #works for [0] array
win_array[0..7].map! {|x| x == "TR" ? "1" : x } #doesn't work
win_array.each.map! {|x| x == "TR" ? "1" : x } #doesn't work
win_array.each {|x| x.map! == "TR" ? "1" : x } #doesn't work
我正在尝试将此二维数组中的每个“TR”实例永久更改为整数或字符串。我曾尝试使用.map!上面概述的方法运气不佳。任何帮助将不胜感激。
【问题讨论】:
-
这似乎工作
win_array.map! { |a| a.map! { |x| x == "TR" ? "1" : x } } -
谢谢八月!我也想知道为什么 [0..7].map!不起作用。你知道吗?
-
首先,
Array#[Range]创建了一个新的Array对象,所以原来的win_array没有被修改,其次,你映射了win_array中的每个Array,而不是该数组的元素。 -
太棒了。你一直很有帮助。谢谢。