Ruby - Знакомство с методом zip

Ruby - Знакомство с методом zip

Несколько дней назад я изучал класс 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