0

我正在使用 Rspec 进行测试,我想检查一个数组是否包含另一个数组中的某些元素。

elements = ['e1', 'e2']
hash = {'e1' => 5, 'e8' => 8}

it "Include any element from elements" do
  hash.should include('e1') || hash.should include('e2')
end

哈希应该包括元素中的任何元素(作为键)。还有更优雅的方式吗?谢谢。

4

2 回答 2

3

这应该有效:

(elements & hash.keys).should_not be_blank

如果数组包含至少一个存在于 another_array 中的元素,这将通过。

hash.keys只需返回该哈希的所有键的数组。

于 2013-09-15T17:54:56.803 回答
1

大概:

anotherArray = anotherArray | elements

或者干脆

anotherArray |= elements

对于更新:

elements.each{|e| hash[e] = e[1..-1].to_i unless hash.has_key?(e)}
于 2013-09-15T17:50:51.700 回答