2013-06-24 2 views
-3

Мой массив строк что-то вроде этогоРубин Как объединить к элементам массива строк

arr = ["a", "apple", "b", "banyan", "banana", "c", "cat"] 

Я хочу объединить baynan, чтобы банан так что мой массив выглядит так, и я могу создать HashMap

arr = ["a", "apple", "b", "banyanbanana", "c", "cat"] 
hash_arr = Hash[*arr] 

но все же у меня нет идеи объединить определенные два смежных значения в том же массиве с помощью ruby. не существует ы нет фиксированного положения для слияния, так что я могу выйти из исключения «нечетного числа аргументов для Hash»

Спасибо заранее

+0

там ы нет фиксированного положения для слияния - что вы имеете в виду? Вы хотите объединить индексы 3 и 4, верно? – Tala

ответ

3
arr = ["a", "apple", "b", "banyan", "banana", "c", "cat"] 

indexes = [3, 4] # Define which two elements to merge. 

arr[indexes[0]] += arr.delete_at(indexes[1]) 

arr # => ["a", "apple", "b", "banyanbanana", "c", "cat"] 
+0

Большое спасибо за ваш добрый ответ. Im совершенно новый для ruby ​​:) недавно перешел из python, все еще изучая грамматику :) – Kalanamith

+0

Спасибо за (ре), обучая меня #delete_at. –

+1

@ Kalanamith: В этом случае повысите свой ответ и отметьте его как принятый, когда это позволяет время. –

1

Таким образом, для одного значения:

arr = ["a", "apple", "b", "banyan", "banana", "c", "cat"] 
index = 3 # you can write `index = arr.find_index("banana")` 
arr[index..(index+1)] = arr[index] + arr[index+1] 

вы можете использовать официальные документы рубин для обучения, какие методы класса поддерживает: http://ruby-doc.org/core-2.0/Array.html

Смежные вопросы