2016-04-18 6 views
7

मेरे पास कुंजी-मूल्य जोड़े और परमाणुओं के साथ एक टुपल वाला मानचित्र है। मैं मानचित्र से किसी भी प्रविष्टि निकालने के लिए जहां कुंजी टपलइलीक्सिर: कुंजियों द्वारा मानचित्र को फ़िल्टर करने के लिए कैसे करें

m = %{value1: nil, value2: nil, value4: nil} 
t = {:value1, :value3, :value4} 
# The result should be %{value1: nil, value4: nil} 

यह एक दूसरे को काटना समस्या की तरह है में एक परमाणु नहीं है चाहता हूँ। मैंने Enum.filter और MapSet में देखा लेकिन एक सुरुचिपूर्ण समाधान नहीं मिला। यह एक आम समस्या होनी चाहिए और आपके इनपुट की अत्यधिक सराहना की जा रही है।

+4

मुझे लगता है कि कुंजी श्वेत सूची, एक टपल पहली जगह में एक सूची नहीं होना चाहिए। –

उत्तर

12

Map.take/2 उपयोग और एक Tuple.to_list/1:

iex(1)> m = %{value1: nil, value2: nil, value4: nil} 
%{value1: nil, value2: nil, value4: nil} 
iex(2)> t = {:value1, :value3, :value4} 
{:value1, :value3, :value4} 
iex(3)> Map.take(m, Tuple.to_list(t)) 
%{value1: nil, value4: nil} 
संबंधित मुद्दे

 संबंधित मुद्दे