(def threads
{:values
[{:_id "t1"
:u {:uid 1}
:members {:values [{:uid 1} {:uid 2}]}
:messages {:values
[{:_id "m1" :u {:uid 1}}
{:_id "m2" :u {:uid 2}}]}}
{:_id "t2"
:u {:uid 12}
:members {:values [{:uid 11} {:uid 12}]}
:messages {:values
[{:_id "m3" :u {:uid 13}}
{:_id "m4" :u {:uid 12}}]}}]})
Cần phải tìm hiểu tất cả các giá trị cho khóa: uid Trong trường hợp này câu trả lời nên trả lại [1 2 11 12 13] mà không sử dụng bất kỳ toàn cầu ràng buộc. Cần quy mô giải pháp cho bất kỳ cấp độ nào của cấu trúc lồng nhau.Làm thế nào để có được tất cả các giá trị cho khóa được đưa ra trong một cấu trúc lồng nhau trong clojure
Cảm ơn
Cảm ơn Arthur. Tôi thích câu trả lời của cây-seq hơn. Khi tôi đã bắt đầu sử dụng clojure - tôi thích các bước của dữ liệu-trong-> dữ liệu-out hơn phương pháp tiếp cận nguyên tử. Học một cái gì đó mới ngày hôm nay - cảm ơn rất nhiều :) –
'(bản đồ: uid (filter # (if (và (map?%) (: Uid%)) true false) coll))' có thể được thay thế bằng chỉ '(giữ: uid coll) '. – amalloy
ohhh, ưa thích :) Tôi thích giao diện tốt hơn nhiều. –