我可以转过像
这样的东西[0, 3]
到
[[0], [3]]
我无法找到任何可以将其转化为
的内容[0][3]
有办法做到这一点吗?或者有没有办法迭代原始数组并使每个元素成为自己的数组,而不创建任何子数组?
答案 0 :(得分:1)
在Ruby 2.3中,您可以使用Array#dig
:
arr = [ [ "a", "b", "c" ],
[ "m", "n", "o"] ]
puts arr.dig(1, 2)
# => o
要在输入数组中使用它,请使用splat运算符:
args = [ 1, 2 ]
puts arr.dig(*args)
# => o
答案 1 :(得分:0)
首先,有一个问题需要纠正。您需要明确String Text = String.valueOf(mySpinner.getSelectedItem());
的含义。它是字符串,数组,对数组的引用还是什么?!
但是,我想我可以从你的评论中理解你的目标:
基本上我正在使用gets来找到玩家想要在7x7板上放置东西的位置。我希望他们能够输入“0,3”(或其他)并将其转换为[0] [3],以便它可以在游戏板上正确显示
所以我假设给定一个多维数组,让我们说3X3。现在,当用户输入字符串[0][3]
时,您希望从数组中访问相应的元素。
嗯,这可以做到:凌乱的方式:
0,2
更好的方法:
array = [[1,2,3],[5,6,7],[8,9,10]]
input = gets.strip
#input is: 1,2
command = "array[" + input.split(",").join("][") + "]"
# command: array[0][2] # I guess, this string is want you wanted !
eval(command)
# 7
array = [[1,2,3],[5,6,7],[8,9,10]]
input = gets.strip
#input is: 1,2
x, y = input.split(",").map(&:to_i)
array[x][y]
# 7
方法的文档为here。
我鼓励您请适当更新您的问题,以便人们不会投票。这是一个合理的问题,但只是错误地提出来。
希望有所帮助:)
答案 2 :(得分:-1)
[0,3].map { |e| [e] }
试试这个