Несколько дней назад я изучал класс Array в Ruby и наткнулся на очень хороший метод, позволяющий объединять массивы менее болезненным способом, чтобы мы могли выполнять с ними некоторые операции.
a = [45, 13, 90] b = [30, 9, 180] c = [] a.zip(b) { |x, y| c << (x < y) } print c => [false, false, true].
В этом блоке кода я спрашиваю, меньше ли каждый элемент массива a, чем каждый элемент массива b, и сохраняю ответ (булево) в массиве c.
Мы также можем суммировать элементы массива, см. ниже:
a = [45, 13, 90] b = [30, 9, 180] c = [] a.zip(b) { |x, y| c << (x + y) } print c => [75, 22, 270].
В другом блоке процесс тот же, но мы добавляем.
Если нам нужно просто объединить элементы и вставить новые значения, то это очень просто:
a = [14, 54, 60] b = [23, 44, 12] [20, 30, 40].zip(a, b) print c => [[20, 14, 23], [30, 54, 44], [40, 60, 12]].
Вот и все, я нашел это интересным и решил поделиться с сообществом. ;)
Ссылки: Ruby-Doc.org