在 rails 上添加到数组 ruby 时输出错误
getting wrong output when adding to array ruby on rails
experience_values = ["expert"]
@listing_data =
{
:image_url => "/images/original/missing.png",
:expertise => "Expert",
:skills => [
[0] "Default category"
],
:id => "d8nVaHWz2oP4ki8ayT9Nog",
:given_name => "Ritik",
:family_name => "Som",
:work_domain => "it ",
:languages => "english",
:description => "engineer",
:location => ""
},
[1] {
:image_url => "/images/original/missing.png",
:expertise => "Beginner",
:skills => [
[0] "Default category"
],
:id => "mkfVPmAWHbMG6MT8rp_KKw",
:given_name => "Ritik",
:family_name => "Som",
:work_domain => "",
:languages => "",
:description => "",
:location => ""
}
ll = []
@listing_data.each do |lal|
experience_values.each do |ee|
# binding.pry
if lal[:expertise].include? ee
ll.push(@listing_data)
end
end
end
ll = ll.uniqll = []
@listing_data.each do |lal|
experience_values.each do |ee|
# binding.pry
if lal[:expertise].include? ee
ll.push(@listing_data)
end
end
end
ll = ll.uniq
当我执行上面的代码时,它添加了两个元素 if ll array 但只有第一个包含 expert.Someone 请 help.I 卡住并且无法移动 ahead.I 正在工作经常在 ruby 上 rails 上。
提前致谢。
试试下面的代码
看起来 listing_data 是散列数组
experience_values = ["expert"]
listing_data = [{
:image_url => "/images/original/missing.png",
:expertise => "Expert",
:skills => ["Default category"],
:id => "d8nVaHWz2oP4ki8ayT9Nog",
:given_name => "Ritik",
:family_name => "Som",
:work_domain => "it ",
:languages => "english",
:description => "engineer",
:location => ""
},{
:image_url => "/images/original/missing.png",
:expertise => "Beginner",
:skills => ["Default category"],
:id => "mkfVPmAWHbMG6MT8rp_KKw",
:given_name => "Ritik",
:family_name => "Som",
:work_domain => "",
:languages => "",
:description => "",
:location => ""
}]
listing_data.select {|h| experience_values.include? h[:expertise].downcase }
输出
[{:image_url=>"/images/original/missing.png", :expertise=>"Expert", :skills=>["Default category"], :id=>"d8nVaHWz2oP4ki8ayT9Nog", :given_name=>"Ritik", :family_name=>"Som", :work_domain=>"it ", :languages=>"english", :description=>"engineer", :location=>""}]
experience_values = ["expert"]
@listing_data =
{
:image_url => "/images/original/missing.png",
:expertise => "Expert",
:skills => [
[0] "Default category"
],
:id => "d8nVaHWz2oP4ki8ayT9Nog",
:given_name => "Ritik",
:family_name => "Som",
:work_domain => "it ",
:languages => "english",
:description => "engineer",
:location => ""
},
[1] {
:image_url => "/images/original/missing.png",
:expertise => "Beginner",
:skills => [
[0] "Default category"
],
:id => "mkfVPmAWHbMG6MT8rp_KKw",
:given_name => "Ritik",
:family_name => "Som",
:work_domain => "",
:languages => "",
:description => "",
:location => ""
}
ll = []
@listing_data.each do |lal|
experience_values.each do |ee|
# binding.pry
if lal[:expertise].include? ee
ll.push(@listing_data)
end
end
end
ll = ll.uniqll = []
@listing_data.each do |lal|
experience_values.each do |ee|
# binding.pry
if lal[:expertise].include? ee
ll.push(@listing_data)
end
end
end
ll = ll.uniq
当我执行上面的代码时,它添加了两个元素 if ll array 但只有第一个包含 expert.Someone 请 help.I 卡住并且无法移动 ahead.I 正在工作经常在 ruby 上 rails 上。 提前致谢。
试试下面的代码
看起来 listing_data 是散列数组
experience_values = ["expert"]
listing_data = [{
:image_url => "/images/original/missing.png",
:expertise => "Expert",
:skills => ["Default category"],
:id => "d8nVaHWz2oP4ki8ayT9Nog",
:given_name => "Ritik",
:family_name => "Som",
:work_domain => "it ",
:languages => "english",
:description => "engineer",
:location => ""
},{
:image_url => "/images/original/missing.png",
:expertise => "Beginner",
:skills => ["Default category"],
:id => "mkfVPmAWHbMG6MT8rp_KKw",
:given_name => "Ritik",
:family_name => "Som",
:work_domain => "",
:languages => "",
:description => "",
:location => ""
}]
listing_data.select {|h| experience_values.include? h[:expertise].downcase }
输出
[{:image_url=>"/images/original/missing.png", :expertise=>"Expert", :skills=>["Default category"], :id=>"d8nVaHWz2oP4ki8ayT9Nog", :given_name=>"Ritik", :family_name=>"Som", :work_domain=>"it ", :languages=>"english", :description=>"engineer", :location=>""}]