首页 > 解决方案 > 从哈希数组中选择仅包含在另一个数组中的元素

问题描述

我有两个数组:

arr = ["test", "hello", "year"]

arr_hashes = [{"value": "yes", "key":"test"},{"value": "no", "key":"hello"},{"value": "noway", "key":"yessir"},{"value": "never", "key":"year"}]

我想返回:

new_arr = [{"value": "yes", "key":"test"},{"value": "no", "key":"hello"},{"value": "never", "key":"year"}]

我没有什么根本没有过滤:

arr_hashes.select {|x| x['key'].include?(arr)}

标签: arraysrubyhash

解决方案


这只是相反的方式arr.include?(x['key'])

所以

arr_hashes.select { |x| arr.include?(x['key']) }

接收消息的对象include?,,是一个数组,参数是你想知道它是否包含在数组中的元素


推荐阅读