将数组的每个元素转换为自己的数组

时间:2016-07-16 04:50:13

标签: arrays ruby

我可以转过像

这样的东西
[0, 3]

[[0], [3]]

我无法找到任何可以将其转化为

的内容
[0][3]

有办法做到这一点吗?或者有没有办法迭代原始数组并使每个元素成为自己的数组,而不创建任何子数组?

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]  }

试试这个