我有以下数组
"testArr": [
{
"start": "2020-10-9",
"dest": "2020-10-10"
},
{
"start": "2020-10-10",
"dest": null
},
{
"start": null,
"dest": null
}
]我想要获取开始不为空,但目标为空的元素的索引。如下所示:
index = testArr.rindex{|x| x.start.nil? && x.dest.nil?}
puts index但是我一直收到语法错误。我是ruby的新手。有谁能帮上忙吗?
谢谢
发布于 2020-10-09 19:06:57
假设testArr为Array of Hashes,您必须像hash[key]一样访问散列键的值,而不是像hash.key那样访问散列键的值,即用x[:start]代替x.start
下面的内容应该可以用
index = testArr.rindex {|x| x[:start].present? && x[:dest].nil?}检查以下内容
[4] pry(main)> testArr = [ {"start": "2020-10-9", "dest": "2020-10-10" }, {"start": "2020-10-10", "dest": nil}, {"start": nil, "dest": nil}]
=> [{:start=>"2020-10-9", :dest=>"2020-10-10"}, {:start=>"2020-10-10", :dest=>nil}, {:start=>nil, :dest=>nil}]
[5] pry(main)> testArr.rindex {|x| x[:start].present? && x[:dest].nil?}
=> 1https://stackoverflow.com/questions/64278509
复制相似问题