相关疑难解决方法(0)

Ruby - 数组A是否包含数组B的所有元素

有没有方法来检查数组A是否包含数组B的所有元素?

ruby arrays ruby-on-rails

14
推荐指数
5
解决办法
7364
查看次数

确定一个数组是否包含另一个数组的所有元素

我需要告诉一个数组是否包含具有重复项的另一个数组的所有元素.

[1,2,3].contains_all? [1,2]   #=> true
[1,2,3].contains_all? [1,2,2] #=> false (this is where (a1-a2).empty? fails)
[2,1,2,3].contains_all? [1,2,2] #=> true
Run Code Online (Sandbox Code Playgroud)

因此第一个数组必须包含第二个数组中每个唯一元素的数量或相等数量.

对于那些使用数组作为集合的人来说,这个问题可以解决它,但是我需要控制重复数据.

更新:基准

在Ruby 1.9.3p194上

def bench
  puts Benchmark.measure {
    10000.times do
      [1,2,3].contains_all? [1,2]
      [1,2,3].contains_all? [1,2,2]
      [2,1,2,3].contains_all? [1,2,2]
    end
  }
end
Run Code Online (Sandbox Code Playgroud)

结果是:

Rohit   0.100000   0.000000   0.100000 (  0.104486)
Chris   0.040000   0.000000   0.040000 (  0.040178)
Sergio  0.160000   0.020000   0.180000 (  0.173940)
sawa    0.030000   0.000000   0.030000 (  0.032393)
Run Code Online (Sandbox Code Playgroud)

更新2:更大的阵列

@a1 = (1..10000).to_a
@a2 = (1..1000).to_a
@a3 = (1..2000).to_a

def …
Run Code Online (Sandbox Code Playgroud)

ruby arrays

11
推荐指数
1
解决办法
5819
查看次数

检查Ruby数组的元素是否包含在另一个数组中

我试图比较两个Ruby数组,以验证第一个数组的所有元素都包含在第二个数组中.(不需要反向.)

例如:

a = ["hello", "goodbye"]
b = ["hello", "goodbye", "orange"]
Run Code Online (Sandbox Code Playgroud)

这应该返回true.

但是,我无法找到一种方法可以让我这样做.任何帮助,将不胜感激!

ruby arrays ruby-on-rails

6
推荐指数
2
解决办法
8199
查看次数

标签 统计

arrays ×3

ruby ×3

ruby-on-rails ×2