Стамен обнови решението на 19.10.2016 12:55 (преди около 9 години)
def fetch_deep_with_index(source, path_in_arr, index)
if find_type_of_key(source, path_in_arr[index]) == nil
return nil
else
key = find_type_of_key(source, path_in_arr[index])
end
return source[key] if index == path_in_arr.size - 1
index += 1
fetch_deep_with_index(source[key], path_in_arr, index)
end
Само не знам дали това отговаря на 8 реда за метод?(надявам се,че става въпрос за тялото на функцията)
Също така къде мога да променя решението си, за да има използване и на map
Щом сайтът ти го е приел, значи отговаря на ограничението. Още, може да имаш празни редове - тях не ги брои.
Иначе, в условието пише "Добавете метод reshape на всички хешове, който преобразува текущия хеш в нов с различна структура."
https://postimg.org/image/ewn6zp0qf/
Тук ми е интересно защо така се получава , уж са различни обекти и променям само form_work чрез извиканата функция .last_el() , а след това и съдържанието на form също се е променило?
Правиш плитко копиране. Тоест копираш само самия хеш, но не и стойностите в него. Тези стойности после ги променяш.
Тръгнал си с кофти подход. Не променяй на място. Просто гледай от единия хеш и пълни в другия. :)
Освен това, разгледай какви методи ти дава класа Hash. Например, map би бил много полезен за reshape. Преди да почнеш да пишеш сам всичко, разгледай дали няма нещо готово, което може да те улесни :)
А възможно ли е да се направи изцяло ново копие на shape хешът , т.е. да го преодолеем това плитко копиране?
