2013-02-07 1 views
0

Должен быть простой способ заменить элемент массива в Ruby. Я не хочу использовать регулярные выражения.Как сохранить символ массива в том же индексе в другом массиве?

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

Я хочу, чтобы сохранить символ гр в то же индекс, но в другом массиве.

ответ

1

Не уверен, что вы хотите его (? Действительно ли вы хотите изменить @word_array содержать пробел), но это должно сделать это (дополнительные нулевыми, за исключением в конце массива, дон» t знать, если это проблема):

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

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"] 
Смежные вопросы