1,"b"=>2,"c"=>3,"d"=>4,"e"=>5,"f"=>6} array=["b","a","c","f","z","-6ren">
gpt4 book ai didi

arrays - 当使用数组的哈希中存在不存在的元素时如何返回字符串

转载 作者:太空宇宙 更新时间:2023-11-03 17:09:34 24 4
gpt4 key购买 nike

我有这个散列和这个数组,并执行以下命令...

hash={"a"=>1,"b"=>2,"c"=>3,"d"=>4,"e"=>5,"f"=>6}
array=["b","a","c","f","z","q"]
print hash.values_at(*array).compact

所以我希望它返回如下内容:

#=> [2,1,3,6,"invalid","invalid"]

有没有一种方法可以将散列中不存在的所有其他元素声明为“无效”,而无需一一声明(例如“g”=>“无效”,“h”=>“无效”...... )?

最佳答案

array.map do |key|
hash.fetch key, 'invalid'
end

如果使用一个参数调用 fetch,则如果键不存在,则会引发错误。但是,可选的第二个参数可以为不存在的键设置自定义返回值。

hash.default= 或在哈希构造函数中传递默认值相比,这样做的好处是哈希本身不会更改,因此如果您将来查找不存在的键,它将返回 nil正如预期的那样,而不是“无效”。

关于arrays - 当使用数组的哈希中存在不存在的元素时如何返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43482850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com