Size: a a a

pro.rb (Ruby/Rails / RU)

2020 December 17

D‘

Danil s odnoj ‘i’ i ... in pro.rb (Ruby/Rails / RU)
Алексей Шеин
Вот так можно:
>> arr = [ { a: 1, b: 2}, {a: 3, b: 4}, {a: 5, b: 6} ]
>> arr.map(&:values)
=> [[1, 2], [3, 4], [5, 6]]
>> arr.map(&:values).transpose
=> [[1, 3, 5], [2, 4, 6]]
>> arr.map(&:values).transpose.map(&:sum)
=> [9, 12]
оу щит, там объект из 5-6 значений, нужно ток два вытащить, так шо ето такое
источник

D‘

Danil s odnoj ‘i’ i ... in pro.rb (Ruby/Rails / RU)
Алексей Шеин
если они в разном порядке, то можно вот так:
arr.map { |a| a.slice(:a, :b).values }.transpose.map(&:sum)
выглядит неплохо, оставлю пока этот варик
источник

D‘

Danil s odnoj ‘i’ i ... in pro.rb (Ruby/Rails / RU)
спасибо!
источник

DV

Dmitry Voronov in pro.rb (Ruby/Rails / RU)
Я все равно не понимаю в чем проблема идти ичом и складывать в переменные за один проход, не создавая кучу массивов?
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Dmitry Voronov
Я все равно не понимаю в чем проблема идти ичом и складывать в переменные за один проход, не создавая кучу массивов?
Не фпшечно же
источник

DV

Dmitry Voronov in pro.rb (Ruby/Rails / RU)
Alex Ilizarov
Не фпшечно же
при варианте, что выбрал @nerby1 будет создано 7 массивов и 2 хэша (если я правильно посчитал конечно)

arr = [{ a: 1, b: 1 }, { a: 2, b: 2 }]

arr.map { |a| a.slice(:a, :b).values }.transpose.map(&:sum)

При обычном иче

a = 0
b = 0

arr.each do |i|
 a += i[:a]
 b += i[:b]
end

0 массивов 0 хэшей
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Dmitry Voronov
при варианте, что выбрал @nerby1 будет создано 7 массивов и 2 хэша (если я правильно посчитал конечно)

arr = [{ a: 1, b: 1 }, { a: 2, b: 2 }]

arr.map { |a| a.slice(:a, :b).values }.transpose.map(&:sum)

При обычном иче

a = 0
b = 0

arr.each do |i|
 a += i[:a]
 b += i[:b]
end

0 массивов 0 хэшей
Самые адекватные были each_with_index и подоьные
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Там ничего лишнего вроде не создается
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Не щитая аккумулятора конечно
источник

DV

Dmitry Voronov in pro.rb (Ruby/Rails / RU)
согласен
источник

DV

Dmitry Voronov in pro.rb (Ruby/Rails / RU)
Dmitry Voronov
при варианте, что выбрал @nerby1 будет создано 7 массивов и 2 хэша (если я правильно посчитал конечно)

arr = [{ a: 1, b: 1 }, { a: 2, b: 2 }]

arr.map { |a| a.slice(:a, :b).values }.transpose.map(&:sum)

При обычном иче

a = 0
b = 0

arr.each do |i|
 a += i[:a]
 b += i[:b]
end

0 массивов 0 хэшей
забыл упомянуть ещё про кучу проходов по всем этим созданным объектам
источник

D‘

Danil s odnoj ‘i’ i ... in pro.rb (Ruby/Rails / RU)
Dmitry Voronov
при варианте, что выбрал @nerby1 будет создано 7 массивов и 2 хэша (если я правильно посчитал конечно)

arr = [{ a: 1, b: 1 }, { a: 2, b: 2 }]

arr.map { |a| a.slice(:a, :b).values }.transpose.map(&:sum)

При обычном иче

a = 0
b = 0

arr.each do |i|
 a += i[:a]
 b += i[:b]
end

0 массивов 0 хэшей
прям сильно на производительность влиять будет?
источник

DV

Dmitry Voronov in pro.rb (Ruby/Rails / RU)
Danil s odnoj ‘i’ i 'a'
прям сильно на производительность влиять будет?
я лучше скажу Да, если это повлияет на внимание разработчика к тому что он пишет. Конечно всё зависит от масштабов приложения и количества в нём подобного кода. А если это ещё и в сайдкик например подать, который с освобождением памяти в плохих отношениях, то можно будет быстро получить проблемы
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Разница между начинающим  опытным разработчиком 👍
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Про сайдик кстати не подумал
источник

МВ

Максим Вейсгейм... in pro.rb (Ruby/Rails / RU)
Dmitry Voronov
я лучше скажу Да, если это повлияет на внимание разработчика к тому что он пишет. Конечно всё зависит от масштабов приложения и количества в нём подобного кода. А если это ещё и в сайдкик например подать, который с освобождением памяти в плохих отношениях, то можно будет быстро получить проблемы
👏👏
источник

МВ

Максим Вейсгейм... in pro.rb (Ruby/Rails / RU)
Это какая школа так рассуждать учит?
источник

D‘

Danil s odnoj ‘i’ i ... in pro.rb (Ruby/Rails / RU)
хызы, 200к объектов обрабатвает моментально, на фоне запроса на ES это вообще не заметно будет
источник

D‘

Danil s odnoj ‘i’ i ... in pro.rb (Ruby/Rails / RU)
при чем сейчас больше 50к не будет объектов в этом массиве
источник

RU

Roman Usherenko in pro.rb (Ruby/Rails / RU)
Dmitry Voronov
я лучше скажу Да, если это повлияет на внимание разработчика к тому что он пишет. Конечно всё зависит от масштабов приложения и количества в нём подобного кода. А если это ещё и в сайдкик например подать, который с освобождением памяти в плохих отношениях, то можно будет быстро получить проблемы
сайдкик никаких проблем не имеет. ленивый возврат ресурсов - фишка руби
источник