我有一个如下所示的数组A
:
A = [ { "id" => "1234", "name" => "audi", "isCool" => false },
{ "id" => "5678", "name" => "acura", "isCool" => false },
{ "id" => "9101112", "name" => "bentley", "isCool" => true },
{ "id" => "13141516", "name" => "rollsroyce", "isCool" => true },
{ "id" => "17181920", "name" => "toyota", "isCool" => true } ]
我有一个如下所示的数组B
:
B = ["1234", "13141516”]
我试图只选择数组A中与数组A的ID匹配的元素与数组Bs元素。
所以我想要的结果是:
C = [ { "id" => "1234", "name" => "audi", "isCool" => false },
{ "id" => "13141516", "name" => "rollsroyce", "isCool" => true } ]
有没有简单的方法可以解决这个问题?
我目前试过这个但显然不是一个好主意:
a.select {|x| x['id'] == B.first || B.last}
但显然这不是动态的,因为如果我在数组B
中有3个或4个元素会怎么样。
答案 0 :(得分:4)
A.select { |x| B.include?(x['id']) }