我想退回任何便宜的商品,这应该退回所有价格低于 300 美元的商品。
这是主类;
class ShoesInventory
def initialize(items)
@items = items
end
def cheap
# this is my solution, but it just print out an array of boolean
@items.map { |item| item[:price] < 30 }
# to be implemented
end
end
Run Code Online (Sandbox Code Playgroud)
这是该类的一个实例;
ShoesInventory.new([
{price: 101.00, name: "Nike Air Force 1 Low"}},
{price: 232.00, name: "Jordan 4 Retro"},
{price: 230.99, name: "adidas Yeezy Boost 350 V2"},
{price: 728.00, name: "Nike Dunk Low"}
]).cheap
Run Code Online (Sandbox Code Playgroud)
我希望结果是这样的;
# => [
# {price: …Run Code Online (Sandbox Code Playgroud) 我需要验证哈希的内容,我惊讶地发现 RSpeccontain_exactly只适用于数组。理想的期望是:
expect(type.values.values).to contain_exactly(
ONE: an_object_having_attributes(value: 'uno'),
TWO: an_object_having_attributes(value: 'dos')
)
Run Code Online (Sandbox Code Playgroud)
基本要求是contain_exactly要求数组仅包含这些元素,并且哈希等效项必须仅包含指定的确切键/值对。
有很多解决方法都可以:
include(key: value),但这允许其他键,我需要完全匹配。expect(hash.keys).to contain_exactly(...)但这并不能验证键是否专门链接到值。contain_exactly(将哈希读取为元组[key, value])并基于子数组进行匹配,例如contain_exactly(a_collection_containing_exactly('ONE', an_object_having_attributes(value: 'uno')), ...)aggregate_failures。等等,但我最好奇是否有内置的 RSpec 方法可以做到这一点。
我正在尝试获取哈希值中的嵌套值。我已经尝试过使用Hash#fetch,Hash#dig但是我不知道如何将它们组合在一起。
我的哈希如下。
response = {
"results":[
{
"type":"product_group",
"value":{
"destination":"Rome"
}
},
{
"type":"product_group",
"value":{
"destination":"Paris"
}
},
{
"type":"product_group",
"value":{
"destination":"Madrid"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我尝试了以下
response.dig(:results)[0].dig(:value).dig(:destination) #=> nil
response.dig(:results)[0].dig(:value).fetch('destination') #=> Rome
Run Code Online (Sandbox Code Playgroud)
期望的返回值为"Rome"。第二个表达式有效,但我想知道是否可以简化。
我正在使用Ruby v2.5和Rails v5.2.1.1。
我有hash一个哈希数组array:
hash = {"BEGIN"=>5, "END"=>10}
array = [
{:name=>"aaa", :phase=>"END", :quantity=>6},
{:name=>"bbb", :phase=>"END", :quantity=>4},
{:name=>"ccc", :phase=>"BEGIN", :quantity=>5}
]
Run Code Online (Sandbox Code Playgroud)
如何计算从哈希中获取值的哈希数组的百分比并获得此结果?
[
{:name=>"aaa", :phase=>"END", :quantity=>60%},
{:name=>"bbb", :phase=>"END", :quantity=>40%},
{:name=>"ccc", :phase=>"BEGIN", :quantity=>100%}
]
Run Code Online (Sandbox Code Playgroud)
先感谢您!
我有一个hash叫hash1
hash1 = [{key: 'key1', value: 'value1'}, {key: 'key2', value: 'value2'}, {key: 'key3', value: 'value3'}]
Run Code Online (Sandbox Code Playgroud)
并希望转换为以下格式
{'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3'}
Run Code Online (Sandbox Code Playgroud)