समस्या:
मानचित्रों में एक ही कुंजी से जुड़े मूल्यों को संरक्षित करते हुए कई मानचित्रों को मर्ज करें।
प्रारंभिक दृष्टिकोण:
प्रदान किया गया कोड प्रत्येक मानचित्र पर पुनरावृत्ति करके, मिलान कुंजियों के आधार पर परिणाम मानचित्र में मान जोड़कर मानचित्रों को मर्ज करने का प्रयास किया जाता है। हालाँकि, यह दृष्टिकोण परिणाम मानचित्र के भीतर डुप्लिकेट मानों को संभाल नहीं सकता है। परिणाम मानचित्र में कुंजियों से संबद्ध।
func merge(ms ...map[string]string) मानचित्र[string][]string { रेस := मानचित्र[स्ट्रिंग][]स्ट्रिंग{} _, m के लिए := रेंज एमएस { k, v के लिए := रेंज m { res[k] = संलग्न करें(res[k], v) } } वापसी रेस }
डुप्लिकेट से बचना:
func merge(ms ...map[string]string) map[string][]string {
res := map[string][]string{}
for _, m := range ms {
for k, v := range m {
res[k] = append(res[k], v)
}
}
return res
}
फंक मर्ज(एमएस...मैप[स्ट्रिंग]स्ट्रिंग) मैप[स्ट्रिंग][]स्ट्रिंग { रेस := मानचित्र[स्ट्रिंग][]स्ट्रिंग{} _, m के लिए := रेंज एमएस { स्रोत मानचित्र: k, v के लिए := रेंज m { // जांचें कि क्या (k,v) पहले जोड़ा गया था: _, v2 के लिए := रेंज रेस[k] { अगर वी == वी2 { srcMap जारी रखें } } res[k] = संलग्न करें(res[k], v) } } वापसी रेस }
परीक्षण:
func merge(ms ...map[string]string) map[string][]string {
res := map[string][]string{}
for _, m := range ms {
srcMap:
for k, v := range m {
// Check if (k,v) was added before:
for _, v2 := range res[k] {
if v == v2 {
continue srcMap
}
}
res[k] = append(res[k], v)
}
}
return res
}
m1 := नक्शा[स्ट्रिंग]स्ट्रिंग{"id_1": "val_1"}
m2 := मानचित्र[स्ट्रिंग]स्ट्रिंग{"id_2": "val_2", "id_1": "val_1"}
m3 := मानचित्र[स्ट्रिंग]स्ट्रिंग{"id_1": "val_3"}
रेस := मर्ज(एम1, एम2, एम3)
fmt.Println(res)आउटपुट:
m1 := map[string]string{"id_1": "val_1"}
m2 := map[string]string{"id_2": "val_2", "id_1": "val_1"}
m3 := map[string]string{"id_1": "val_3"}
res := merge(m1, m2, m3)
fmt.Println(res)
यह विलय को दर्शाता है मानचित्रों की, एक ही कुंजी से जुड़े मूल्यों को संरक्षित करना और डुप्लिकेट से बचना।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3