Size: a a a

2021 September 01

DG

Denis Gavrilin in RubyRush.ru
Порядок в хеше?
источник

VK

Vadzim Kutsevolau in RubyRush.ru
когда делаю так: hash.sort_by {|_key, value| value.size}
ругается на nil
источник

VK

Vadzim Kutsevolau in RubyRush.ru
мне порядок в хеше не нужен, я понимаю вопрос, мне нужно вывести в порядке, что описал ключи.
источник

Э

Эдем in RubyRush.ru
Окей, что уже получилось?
источник

VK

Vadzim Kutsevolau in RubyRush.ru
in `block in <main>': undefined method `size' for nil:NilClass (NoMethodError)
источник

Э

Эдем in RubyRush.ru
А код как выглядит?
источник

VK

Vadzim Kutsevolau in RubyRush.ru
var = uniq_digs.map do |x| 
 uniq_digs_hash = {}
 uniq_digs_hash[x] =  digs_to_the_left_to_x(x).uniq
 uniq_digs_hash
end
p var.sort_by {|_key, value| value.size}
источник

NZ

Nick Zhur in RubyRush.ru
p var сначала выведи и посмотри, что сортируется
источник

Э

Эдем in RubyRush.ru
Значит этот пример не совсем верный hash = { k1 => [1, 2, 3], k2  => [ ], k3 => [4, 5]}
источник

VK

Vadzim Kutsevolau in RubyRush.ru
[{3=>[7]}, {1=>[3, 7]}, {9=>[3, 1, 6, 2, 8, 7]}, {6=>[7, 3, 1]}, {8=>[6, 1, 3, 2, 7]}, {0=>[6, 8, 1, 9, 2, 7, 3]}, {2=>[1, 6, 7, 3]}, {7=>[]}]
источник

DG

Denis Gavrilin in RubyRush.ru
Если сам собираешь хеш то не добавляй ключи с нилом, если нет, то в блоке sort_by можешь сначала удалить ключи с нилом
источник

VK

Vadzim Kutsevolau in RubyRush.ru
а мне этот ключ нужно в начало строки потом поставить
источник

Э

Эдем in RubyRush.ru
Это массив хэшей, а не хэш из примера. Пока неясно, что нужно :)
источник

DG

Denis Gavrilin in RubyRush.ru
он из этого массива хеш делает, как я понял
источник

Э

Эдем in RubyRush.ru
🤷‍♂️ возможно, но лучше вот с этого начать

https://stackoverflow.com/help/minimal-reproducible-example
источник

VK

Vadzim Kutsevolau in RubyRush.ru
есть, получилось, сортанул, только нил вывел в конце
p var.map do |hash|
 hash.sort_by {|_key, value| value.size}
end

[{3=>[7]}, {1=>[3, 7]}, {9=>[3, 1, 6, 2, 8, 7]}, {6=>[7, 3, 1]}, {8=>[6, 1, 3, 2, 7]}, {0=>[6, 8, 1, 9, 2, 7, 3]}, {2=>[1, 6, 7, 3]}, {7=>[]}]

ну с этим сейчас разберусь, спасибо за наводки!
источник

DG

Denis Gavrilin in RubyRush.ru
ну в общем если из массива сделать хеш надо то array.inject(:merge!) или типо того, но конечно лучше полное описание задачи скинуть
источник

Э

Эдем in RubyRush.ru
Это не nil, это хэш, состоящий из одной пары, значение которой — пустой массив. Нужно его в начало?
источник

VK

Vadzim Kutsevolau in RubyRush.ru
да, по возрастанию size
источник

Э

Эдем in RubyRush.ru
Так?

var = [{3=>[7]}, {1=>[3, 7]}, {9=>[3, 1, 6, 2, 8, 7]}, {6=>[7, 3, 1]}, {8=>[6, 1, 3, 2, 7]}, {0=>[6, 8, 1, 9, 2, 7, 3]}, {2=>[1, 6, 7, 3]}, {7=>[]}]

var.sort { |a, b| a.values.first.size <=> b.values.first.size }

# => [{7=>[]}, {3=>[7]}, {1=>[3, 7]}, {6=>[7, 3, 1]}, {2=>[1, 6, 7, 3]}, {8=>[6, 1, 3, 2, 7]}, {9=>[3, 1, 6, 2, 8, 7]}, {0=>[6, 8, 1, 9, 2, 7, 3]}]
источник