यदि मेरे पास निम्न सरणी है और मैं एक स्ट्रिंग सरणी बनाना चाहता हूं जिसमें मिस्ट्रीडोर्स सरणी को शब्दकोश के लिए कुंजियों के रूप में मैप करके दरवाजे के पुरस्कार शामिल हैं, और संबंधित मानों को एक नई सरणी में प्राप्त करें।
इस प्रकार मुझे ["गिफ्ट कार्ड", "कार", "अवकाश"] की एक स्ट्रिंग सरणी मिल जाएगी, मैं यह कैसे कर सकता हूं?
let mysteryDoors = [3,1,2]
let doorPrizes = [
1:"Car", 2: "Vacation", 3: "Gift card"]
3 जवाब
आप map()
प्रत्येक सरणी तत्व को संबंधित मान में कर सकते हैं शब्दकोष। अगर यह गारंटीकृत है कि सभी सरणी तत्व हैं शब्दकोश में कुंजी के रूप में मौजूद है तो आप यह कर सकते हैं:
let mysteryDoors = [3, 1, 2]
let doorPrizes = [ 1:"Car", 2: "Vacation", 3: "Gift card"]
let prizes = mysteryDoors.map { doorPrizes[$0]! }
print(prizes) // ["Gift card", "Car", "Vacation"]
यदि कोई कुंजी मौजूद नहीं है, तो रनटाइम क्रैश से बचने के लिए, उपयोग करें
let prizes = mysteryDoors.flatMap { doorPrizes[$0] }
अज्ञात कुंजियों को अनदेखा करने के लिए, या
let prizes = mysteryDoors.map { doorPrizes[$0] ?? "" }
अज्ञात कुंजियों को डिफ़ॉल्ट स्ट्रिंग में मैप करने के लिए।
अगर आपको map
का उपयोग करना है, तो यह कुछ इस तरह दिखेगा:
let array = mysteryDoors.map { doorPrizes[$0] }
ऐप्पल डॉक उदाहरण कोड को दोबारा पढ़ने और मुझे जो चाहिए उसे बदलने के बाद। मुझे विश्वास है कि यह (लगभग) है। दुर्भाग्य से यह अब नई लाइनों के साथ स्ट्रिंग प्रारूप में है ...
let myPrizes = doorPrizes.map { (number) -> String in
var output = ""
output = mysteryDoors[number]!
return output;
}
संबंधित सवाल
नए सवाल
arrays
एक सरणी एक आदेशित रैखिक डेटा संरचना है जिसमें तत्वों (मूल्यों, चर, या संदर्भों) का एक संग्रह होता है, प्रत्येक को एक या अधिक अनुक्रमित द्वारा पहचाना जाता है। जब सरणियों के विशिष्ट प्रकारों के बारे में पूछा जाता है, तो इसके बजाय इन संबंधित टैगों का उपयोग करें: [वेक्टर], [सरणी सूची], [मैट्रिक्स]। इस टैग का उपयोग करते समय, एक सवाल जो प्रोग्रामिंग भाषा के लिए विशिष्ट होता है, उस प्रश्न को उस प्रोग्रामिंग भाषा के साथ टैग करें जिसका उपयोग किया जा रहा है।