Size: a a a

pro.rb (Ruby/Rails / RU)

2020 December 16

D‘

Danil s odnoj ‘i’ i ... in pro.rb (Ruby/Rails / RU)
мне нужны по отдельности суммы
источник

D‘

Danil s odnoj ‘i’ i ... in pro.rb (Ruby/Rails / RU)
сумма А и сумма Б в две переменные
источник

V

Vladyslav Parashchen... in pro.rb (Ruby/Rails / RU)
arr.inject(0) {|sum, obj| sum + obj[:key] } наиболее оптимально
источник

D‘

Danil s odnoj ‘i’ i ... in pro.rb (Ruby/Rails / RU)
Vladyslav Parashchenko
arr.inject(0) {|sum, obj| sum + obj[:key] } наиболее оптимально
тогда нужно будет под каждый кей это выписывать 😕
источник

DV

Dmitry Voronov in pro.rb (Ruby/Rails / RU)
я же написал выше, чем не нравится?
источник

D‘

Danil s odnoj ‘i’ i ... in pro.rb (Ruby/Rails / RU)
как раз так и сделал
источник

ML

Michael Lutsko in pro.rb (Ruby/Rails / RU)
arr.inject(0) { |sum, obj| sum+=obj.values.sum }

arr.sum {|obj| obj.values.sum }
источник

ML

Michael Lutsko in pro.rb (Ruby/Rails / RU)
хотя наверно это не очень оптимально
источник

u

unkmas in pro.rb (Ruby/Rails / RU)
Danil s odnoj ‘i’ i 'a'
добрый день, есть массив объектов – [{a:1, b:1}, {a:2, b:2} … ] нужно вывести сумму всех A и B, как это максимально оптимально сделать без повторений? Пока только так - .map { |a| a[:a] }.inject(0, :+)
arr.each_with_object({a: 0, b:0}) {|item, sum| sum[:a] += item[:a]; sum[:b] += item[:b] }
источник

АШ

Алексей Шеин... in pro.rb (Ruby/Rails / RU)
ShadoWalkeR
Возвращаемся к той же задаче, только с лишним слоем абстракции
Вот так можно:
>> 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]
источник

RU

Roman Usherenko in pro.rb (Ruby/Rails / RU)
смотря какая задача
- всегда ли это только a и b или надо скейлиться на другое количество?
- всегда ли они есть в каждом элементе массива?
- всегда ли они в одном порядке?
источник

АШ

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

S

ShadoWalkeR 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]
Это к чему?
источник

АШ

Алексей Шеин... in pro.rb (Ruby/Rails / RU)
сорри, случайно тегнул
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
А ок
источник
2020 December 17

DV

Dmitry Voronov 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]
Зачем столько массивов создавать?
источник

АШ

Алексей Шеин... in pro.rb (Ruby/Rails / RU)
А почему бы и нет?
источник

ВА

Віталій Адамков... in pro.rb (Ruby/Rails / RU)
Danil s odnoj ‘i’ i 'a'
добрый день, есть массив объектов – [{a:1, b:1}, {a:2, b:2} … ] нужно вывести сумму всех A и B, как это максимально оптимально сделать без повторений? Пока только так - .map { |a| a[:a] }.inject(0, :+)
arr.each_with_object(Hash.new(0)) { |hash, sum| hash.each { |k, v| sum[k] += v } }
источник

D‘

Danil s odnoj ‘i’ i ... in pro.rb (Ruby/Rails / RU)
Віталій Адамков
arr.each_with_object(Hash.new(0)) { |hash, sum| hash.each { |k, v| sum[k] += v } }
вместо each_with_object можно inject({}) заюзать?
источник

ВА

Віталій Адамков... in pro.rb (Ruby/Rails / RU)
Danil s odnoj ‘i’ i 'a'
вместо each_with_object можно inject({}) заюзать?
попробуй
источник