如何从另一个数组中的多个元素中选择数组中的元素

时间:2016-09-29 19:10:10

标签: arrays json ruby object

我有一个如下所示的数组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个元素会怎么样。

1 个答案:

答案 0 :(得分:4)

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