में स्विफ्ट 3 और 4 , इस होगा:
नंबर के साथ, जॉनसन के जवाब के अनुसार:
var a = [1,2,3,4,5,6]
for (i,num) in a.enumerated().reversed() {
a.remove(at: i)
}
print(a)
ओपी के सवाल के रूप में तार के साथ :
var b = ["a", "b", "c", "d", "e", "f"]
for (i,str) in b.enumerated().reversed()
{
if str == "c"
{
b.remove(at: i)
}
}
print(b)
हालाँकि, अब स्विफ्ट 4.2 में या बाद में, वहाँ भी एक बेहतर, तेज़ तरीका है जिसे Apple द्वारा WWDC2018 में सुझाया गया था:
var c = ["a", "b", "c", "d", "e", "f"]
c.removeAll(where: {$0 == "c"})
print(c)
इस नए तरीके के कई फायदे हैं:
- यह कार्यान्वयन के मुकाबले तेज़ है
filter
।
- यह सरणियों को उलटने की आवश्यकता से दूर होता है।
- यह आइटमों को इन-प्लेस से हटा देता है, और इस प्रकार यह नए एरे को आवंटित करने और वापस करने के बजाय मूल सरणी को अपडेट करता है।