2016-03-23 5 views
-1

У меня есть два массива, как в приведенном ниже списке.Комбинированные массивы в Ruby

a = [1, 2, 3, 4, 5] 
b = [1.360, 0.085, -1.190, -0.340, 3.698] 

Мне нужно объединить значения в каждом индексе так, что я получаю структуру, напоминающую Resultant Array.

Resultant Array = [[1, 1.360], [2, 0.085], [3, -1.190], [4, -0.340], [5, 3.698]] 

Как это сделать?

+4

'a.zip (b) 'должен делать – Santhosh

+0

Как это сделать в файле вида в rails santhosh? –

+0

Вы имеете в виду файл erb/haml? В erb будет выполнен любой код внутри '<% %>', а внутри '<%= %>' будет выполнен, и результат будет выводиться в html – Santhosh

ответ

6

Вы можете использовать Array#zip

a.zip(b) 
# => [[1, 1.36], [2, 0.085], [3, -1.19], [4, -0.34], [5, 3.698]] 
0

Вы можете сделать:

a.zip(b) #=> [[1,1.360],[2,0.085],[3,-1.190],[4,-0.340],[5,3.698]] 

я не пробовал.

Источник: apidoc.com

3
a = [1, 2, 3, 4, 5] 
b = [1.360, 0.085, -1.190, -0.340, 3.698] 

Вы также можете попробовать альтернативу:

[a,b].transpose 

Примечание: Используйте это, когда длина вашего массива же

+0

Я попробовал ваше предложение, и все было хорошо, но я думаю, что «zip» - это лучший способ, который точно используется для обработки подобных ситуаций. Поэтому я принял «zip» в качестве своего ответа. В любом случае, спасибо за ваше предложение. –

+0

@AhkshayRavi Да, я согласен с тобой :) – dp7

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