如何在另一个数组中的同一索引处保存数组字符?

时间:2013-02-07 19:33:59

标签: ruby arrays replace

必须有一种简单的方法来替换Ruby中的数组元素。我不想使用正则表达式。

while @word_array.include? c do
  idx = @word_array.index(c)
  @currently_found[idx] = c
  @word_array.index(idx) = " "
end

我想将char c 保存在同一个索引中但在另一个数组中。

2 个答案:

答案 0 :(得分:1)

只需使用Array#index的返回值即可。例如:

an_array     = %w[a b c]
new_array    = []
chars        = ['b']
chars.each do |char|
  new_array[an_array.index(char)] = char if an_array.include? char
end
new_array
=> [nil, "b"]

答案 1 :(得分:1)

不确定你想要它(你真的想改变@word_array以包含一个空格吗?),但这应该这样做(除了数组末尾的额外nil,不知道这是不是一个问题) :

@currently_found = @word_array.map { |w| w == c ? c : nil }