如果有人可以帮我弄清楚为什么我的代码没有通过,我将不胜感激。 我在这里给出了论据。
购物车项目:
{
"AVOCADO" => {:price => 3.0, :clearance => true, :count => 3},
"KALE" => {:price => 3.0, :clearance => false, :count => 1}
}
优惠券:
{:item => "AVOCADO", :num => 2, :cost => 5.0}
这需要我回复:
{
"AVOCADO" => {:price => 3.0, :clearance => true, :count => 1},
"KALE" => {:price => 3.0, :clearance => false, :count => 1},
"AVOCADO W/COUPON" => {:price => 5.0, :clearance => true, :count => 1},
}
这是我的代码:
def apply_coupons(cart:[], coupons:[])
app_coupon = {}
cart.each do |items|
items.each do |item_name, value|
app_coupon[item_name] = value
coupons.each do |coupon|
if coupon[:item] == item_name
app_coupon["#{coupon[:item]} W/COUPON"] = {:price => coupon[:cost], :clearance => value[:clearance], :count => value[:count] / coupon[:num] }
app_coupon[item_name][:count] -= coupon[:num]
end
end
end
end
app_coupon
end
答案 0 :(得分:0)
一个可能的问题..
优惠券:
{:item => "AVOCADO", :num => 2, :cost => 5.0}
...这只是一个哈希,但在您的代码中,您正在做...
coupons.each do |coupon|
...所以你期待一个阵列。你应该拍优惠券:
[{:item => "AVOCADO", :num => 2, :cost => 5.0}]