【发布时间】:2013-01-23 10:41:19
【问题描述】:
在 Ruby 中必须有一种简单的方法来替换数组的元素。我不想使用正则表达式。
while @word_array.include? c do
idx = @word_array.index(c)
@currently_found[idx] = c
@word_array.index(idx) = " "
end
我想将字符 c 保存在同一索引但在另一个数组中。
【问题讨论】:
在 Ruby 中必须有一种简单的方法来替换数组的元素。我不想使用正则表达式。
while @word_array.include? c do
idx = @word_array.index(c)
@currently_found[idx] = c
@word_array.index(idx) = " "
end
我想将字符 c 保存在同一索引但在另一个数组中。
【问题讨论】:
不确定你想要它做什么(你真的想改变@word_array 来包含一个空格吗?),但应该这样做(除了数组末尾的额外 nil,不知道这是否有问题) :
@currently_found = @word_array.map { |w| w == c ? c : nil }
【讨论】:
只需使用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"]
【讨论】: