我有一個哈希陣列,其中包含帶有重復欄位的 JSON,我想洗掉重復的:
[ {
"code" : "32F",
"lon" : 0.963335,
"fint" : "2022-05-03T13:00:00",
"prec" : 0.0,
},{
"code" : "32F",
"lon" : 0.963335,
"fint" : "2022-05-03T13:00:00",
"prec" : 0.0,
},{
"code" : "90X",
"lon" : 0.963335,
"fint" : "2022-05-03T13:00:00",
"prec" : 0.0,
}]
這是希望的輸出:
[{
"code" : "32F",
"lon" : 0.963335,
"fint" : "2022-05-03T13:00:00",
"prec" : 0.0,
},{
"code" : "90X",
"lon" : 0.963335,
"fint" : "2022-05-03T13:00:00",
"prec" : 0.0,
}]
有任何想法嗎?
謝謝!
uj5u.com熱心網友回復:
首先你有錯誤的語法
"code" : "32F",-- 這里不需要空格
正確的變體是"code": "32F",
你甚至不需要在這里參考。只是code: "32F",
要從陣列中洗掉重復項——使用uniq!
當心
ary = [1, 1]
ary.uniq! # => [1]
ary # => [1]
ary = [1, 2]
ary.uniq! # => nil
ary # => [1, 2]
或使用uniq無爆炸聲回傳新陣列
ary = [1, 1]
ary.uniq # => [1]
ary # => [1, 1]
ary = [1, 2]
ary.uniq # => [1, 2]
ary # => [1, 2]
在你的情況下
ary =
[{
code: "32F",
lon: 0.963335,
fint: "2022-05-03T13:00:00",
prec: 0.0,
},{
code: "32F",
lon: 0.963335,
fint: "2022-05-03T13:00:00",
prec: 0.0,
},{
code: "90X",
lon: 0.963335,
fint: "2022-05-03T13:00:00",
prec: 0.0,
}]
ary.uniq!
# => [{:code=>"32F", :lon=>0.963335, :fint=>"2022-05-03T13:00:00", :prec=>0.0}, {:code=>"90X", :lon=>0.963335, :fint=>"2022-05-03T13:00:00", :prec=>0.0}]
uj5u.com熱心網友回復:
試試 enumerables 模塊中的 uniq 。它應該適用于您的用例。默認情況下,它可用于 ruby?? 陣列。
uj5u.com熱心網友回復:
使用.uniq它應該適合你。注意:您的哈希陣列在每個鍵之后都有額外的空間。你應該洗掉它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/474208.html
