我有两个对象数组,例如:
a1 = [obj1, obj2 , obj3]
a2 = [obj4, obj5, obj6]
每个数组都有相同类的不同对象。我想在一个迭代中检查它们是否具有相同的属性值(
obj1.att == obj4.att
)。
a1.each
将对单个数组进行迭代。我不想使用 for
或 while
循环。我希望用 Rails 的方式来完成。我有两个对象数组,例如:
a1 = [obj1, obj2 , obj3]
a2 = [obj4, obj5, obj6]
obj1.att == obj4.att
)。
a1.each
将对单个数组进行迭代。我不想使用 for
或 while
循环。我希望用 Rails 的方式来完成。same_att = a1.size == a2.size && a1.map(&:att) == a2.map(&:att)
同样的思路,实现比较懒惰(仅适用于数组中有大量元素的情况):
same_att = a1.size == a2.size && a1.lazy.zip(a2).all? { |x, y| x.att == y.att }
a1.map(&:att) == a2.map(&:att)
编辑 请记住以下几点:
[1,2,3] == [1,2,3] #true
AND
[1,2,3] == [2,3,1] #false
a1.each {|i| a2.select {|k| k.att == i.att }}