Решение на Втора задача - хешове, масиви и структура от Кузман Белев

Обратно към всички решения

Към профила на Кузман Белев

Резултати

  • 6 точки от тестове
  • 0 бонус точки
  • 6 точки общо
  • 15 успешни тест(а)
  • 0 неуспешни тест(а)

Код

class Hash
def fetch_deep(path)
path.split(".").reduce(self) do |memo, key|
memo == nil ? nil : memo[key.to_i] || memo[key.to_sym] || memo[key]
end
end
def reshape(shape)
shape.map do |key, value|
value.is_a?(Hash) ? [key, reshape(value)] : [key, fetch_deep(value)]
end.to_h
end
end
class Array
def reshape(shape)
map { |element| element.reshape(shape) }
end
end

Лог от изпълнението

...............

Finished in 0.00964 seconds
15 examples, 0 failures

История (5 версии и 0 коментара)

Кузман обнови решението на 20.10.2016 21:51 (преди над 7 години)

+class Hash
+ def fetch_deep(path)
+ path.split(".").reduce(self) do |memo, key|
+ memo[key.to_i] || memo[key.to_sym] || memo[key]
+ end
+ end
+end

Кузман обнови решението на 21.10.2016 18:08 (преди над 7 години)

class Hash
def fetch_deep(path)
path.split(".").reduce(self) do |memo, key|
memo[key.to_i] || memo[key.to_sym] || memo[key]
end
end
+
+ def reshape(shape)
+ shape.map do |key, value|
+ value.is_a?(Hash) ? [key, reshape(value)] : [key, fetch_deep(value)]
+ end.to_h
+ end
end

Кузман обнови решението на 22.10.2016 00:58 (преди над 7 години)

class Hash
def fetch_deep(path)
path.split(".").reduce(self) do |memo, key|
memo[key.to_i] || memo[key.to_sym] || memo[key]
end
end
def reshape(shape)
shape.map do |key, value|
value.is_a?(Hash) ? [key, reshape(value)] : [key, fetch_deep(value)]
end.to_h
end
+end
+
+class Array
+ def reshape(shape)
+ map { |element| element.reshape(shape) }
+ end
end

Кузман обнови решението на 23.10.2016 14:32 (преди над 7 години)

class Hash
def fetch_deep(path)
path.split(".").reduce(self) do |memo, key|
+ return nil if memo.is_a? NilClass
memo[key.to_i] || memo[key.to_sym] || memo[key]
end
end
def reshape(shape)
shape.map do |key, value|
value.is_a?(Hash) ? [key, reshape(value)] : [key, fetch_deep(value)]
end.to_h
end
end
class Array
def reshape(shape)
map { |element| element.reshape(shape) }
end
end

Кузман обнови решението на 24.10.2016 08:27 (преди над 7 години)

class Hash
def fetch_deep(path)
path.split(".").reduce(self) do |memo, key|
- return nil if memo.is_a? NilClass
- memo[key.to_i] || memo[key.to_sym] || memo[key]
+ memo == nil ? nil : memo[key.to_i] || memo[key.to_sym] || memo[key]
end
end
def reshape(shape)
shape.map do |key, value|
value.is_a?(Hash) ? [key, reshape(value)] : [key, fetch_deep(value)]
end.to_h
end
end
class Array
def reshape(shape)
map { |element| element.reshape(shape) }
end
end