我希望设置一个带数组的哈希值,即<。,
customers = {first: [name, age, height, etc], second: [name, age, height, etc], ...}
如何访问和编辑客户特定属性,例如customers[first[age]]
?
答案 0 :(得分:2)
如果您的个人客户数据是您所显示的数组,那么您需要为这些属性设置固定索引,例如名称始终位于索引0,年龄位于索引1,您可以通过执行
来访问数据customers[:first][0] # name
customers[:first][1] # age
customers[:first][2] # height
但是如果您控制数据的生成方式,那么您应该使用Ruby Hash来实现此目的,因此生成的数据应该采用这种格式,即散列数组
customers = [{ name: 'John Doe', age: 30, height: 175 }, { name: 'John Doe', age: 30, height: 175 }]
你现在可以做
customers.first[:name] # for first customer
customers[0][:age] # for first customer
customers[1][:name] # for second customer
答案 1 :(得分:2)
由于您要求采用不同的方式来设置此数据结构,因此还有另一种选择:
设置课程Customer
class Customer
attr_accessor :name, :age, :height
def initialize(name:, age:, height:)
@name = name
@age = age
@height = height
end
end
然后,无论您设置了数组还是哈希,您都可以通过调用对象上的方法来访问元素属性。
这是一个数组示例:
customers = [
Customer.new(name: "John", age: 30, height: 175),
Customer.new(name: "Sam", age: 25, height: 160)
]
然后你可以访问元素
customer[0].name
# => "John"
customer[0].name = "Tom"
# => "Tom"
customer[1].age
# => 25
# etc...