以下は、args という名前の架空のハッシュマップです。
{:body {:milestones [{:status 1 :otherValues x}
{:status 2 :otherValues z}
{:status 1 :otherValues y]}}
私の目標は、各 :status キーの値のコレクションを持つことです。それらはすべて、:milestones の子である同じ深さにあります。
私は近づいています。これを行うことで最初のステータスの値を取得する方法を知っています:
(let [{[{:keys [status]} x] :milestones} :body} args]
(println status))
最終的な目標は、値が 1 の :status を含むマップを見つけ、個々のマップごとに新しいコレクションを作成することです。
これの文字通りの適用は、TeamworkPM に接続し、「遅れている」または「未完了」のステータスを持つマイルストーンを Google カレンダーと同期することです。
このシナリオでは、必要な出力は {1, 2, 1} になります。最終的な目標は、
{{:status 1 :otherValues x}
{:status 1 :otherValues Y}}