2016-09-29 23 views
1

我有一个数组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与数组B的元素匹配的元素。

,返回的结果,我想的是:

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个元素是什么。

回答

4
A.select { |x| B.include?(x['id']) } 
+0

啊那很聪明啊。有效。谢谢 – adbarads