比较rails中两个对象数组的最佳方法

Rah*_*ali 3 ruby comparison

我有两个对象数组,例如:

a1 = [obj1, obj2 , obj3]
a2 = [obj4, obj5, obj6]
Run Code Online (Sandbox Code Playgroud)

每个数组都有不同的同类对象.我想检查它们obj1.att == obj4.att在一次迭代中是否具有相同的属性值().

a1.each将在单个数组上进行迭代.我不想使用forwhile循环.我想要一个rails方式来做到这一点.

tok*_*and 6

我想在迭代之前检查数组大小是否匹配是有意义的:

same_att = a1.size == a2.size && a1.map(&:att) == a2.map(&:att)
Run Code Online (Sandbox Code Playgroud)

同样的想法,一个懒惰的实现(只有在数组中有很多元素):

same_att = a1.size == a2.size && a1.lazy.zip(a2).all? { |x, y| x.att == y.att }
Run Code Online (Sandbox Code Playgroud)