【发布时间】:2022-09-28 17:37:46
【问题描述】:
我有一个红宝石哈希
obj =
{
\"context\":{
\"conversationIDs\": [1, 2, 5], \"sessionID\":2}
}
我想用新值编辑 conversationIds 键并采用它的唯一性。我试过的
merged = (
{
context: obj[:context].merge({
\"conversationIDs\": [*obj[:context][\"conversationIDs\"], 2,
1, 1].uniq })
}
)
puts merged
实际输出:
{:context=>{:conversationIDs=>[2, 1]}}
预期输出:
{:context=>{:conversationIDs=>[2, 1, 5]}, :sessionID=>2 }
5 输出缺失,如何维持?
-
obj[:context][\"conversationIDs\"]不是obj[:context][:conversationIDs]。你正在做[*nil, 2, 2, 1]的uniq,正确的是[2, 1]。 -
糟糕,错字,我的意思是
[*nil, 2, 1, 1]。
标签: ruby