【发布时间】:2021-10-25 05:56:13
【问题描述】:
我是红宝石新手。我有一个名为users的数组
[
{'name': 'Andy', 'age': 23, 'position': 'manager'},
{'name': 'Cindy', 'age': 25, 'position': 'HR'},
]
在向数组添加新对象{'name': 'Dave', 'age': 33, 'position': 'manager'} 时,它始终会根据position 键删除现有项目。所以当Dave被添加到数组中时,Andy应该被删除,因为他的位置是“经理”。新数组应该是
[
{'name': 'Cindy', 'age': 25, 'position': 'HR'},
{'name': 'Dave', 'age': 33, 'position': 'manager'},
]
我当前的解决方案保留旧项目并删除新项目,这是错误的:(
users.append(user).uniq do |user|
user.position
end
我正在寻找一种简洁而简短的方法来实现它。谢谢。
【问题讨论】:
-
_将新对象添加到数组
{...}:此{...}不是数组。users当然是一个数组。 -
顺便说一句,
'name': 'Cindy'等价于'name'.to_sym => 'Cindy',所以你可以更简单地写成name: 'Cindy'。毕竟,您的键是符号,而不是字符串。 -
@user1934428 谢谢,我已经修改了那句话,让它更清楚