将每个对象与对象数组一起使用

Using each for object with an array of objects

我有一个对象 @cars = Cars,它有一个对象数组 car_array,对象 Car 有实例变量 @id@mileage,所以,写它作为伪数组,它是:

Cars = [
    Car1 = [1, 12000],
    Car2 = [2, 33000]
]

有没有办法编写一个 each 方法来遍历汽车,这样:

@cars.each do |id, mileage|
    ...
end

?

我尝试在 Cars 中执行自定义 each 方法:

def each(&block)
    @car_array.each(&block)
end

但这只会 return 每个 Car 对象进入枚举器。我如何将每个 Car 对象转换为数组?

在ruby中,我们使用链式方法来完成不同的复杂转换:

@cars.map do |car|
  [car.id, car.mileage]
end.each do |id, mileage|
    ...
end