için anahtar alın.Swift Sözlük Ben olarak tanımlanan bir sözlük var Değerler
tüm sözlüğe giriş aracılığıylalet key = (drinks as NSDictionary).allKeysForObject("Orange") as! String
print(key)
//Returns an empty Array. Should return "Juice"
için anahtar alın.Swift Sözlük Ben olarak tanımlanan bir sözlük var Değerler
tüm sözlüğe giriş aracılığıylalet key = (drinks as NSDictionary).allKeysForObject("Orange") as! String
print(key)
//Returns an empty Array. Should return "Juice"
func findKeyForValue(value: String, dictionary: [String: [String]]) ->String?
{
for (key, array) in dictionary
{
if (array.contains(value))
{
return key
}
}
return nil
}
arayacak yukarıdaki fonksiyon isteğe bağlı bir String döndürmek?
let drinks = ["Soft Drinks": ["Cocoa-Cola", "Mountain Dew", "Sprite"],
"Juice" :["Orange", "Apple", "Grape"]]
print(self.findKeyForValue("Orange", dictionary: drinks))
Bu fonksiyon geçirilen değere sahip dizisinin sadece birinci anahtarın döner.
Numaralandırma ve istediğiniz değeri her bir değer listesini test ve değer mevcut olduğu anahtarlarını birikir.
let drinks = [
"Soft Drinks": ["Orange", "Cocoa-Cola", "Mountain Dew", "Sprite"],
"Juice" :["Apple", "Grape"]
]
let value = "Orange"
var keys = [String]()
for (key, list) in drinks {
if (list.contains(value)) {
keys.append(key)
}
}
print("keys: \(keys)")
tuşları:
Örnek, bir listede istenen değeri dahil tüm içecekler bulur [ "Meşrubat"]
Swift 2.0'da, sözlüğü filtreleyebilir ve ardından sonucu bir diziye eşleyebilirsiniz.
let keys = drinks.filter {
return $0.1.contains("Orange")
}.map {
return $0.0
}
sonuç uygun tuşlarına temsil String
nesnenin bir dizi olacaktır.
Works, döndüren değerlere sahip, ancak şifreli tüm anahtarları döndürür. – zaph
"Cryptic" filtre göz önünde bulundurulduğunda sert bir kelimedir ve harita yüksek mertebeden işlevlerdir. Sözdizimi günümüzde modası geçmiş, ancak bu konuda –
bu (swift) deneyin: Beni
(NSDictionary olarak içecekler) .allKeysForObject ("Turuncu") istediği gibi "Suyu" değil, boş bir dizi döndürür. Bu arada, soruda yazılmıştır. Lütfen, yayınlamadan önce cevabınızı bir oyun alanında veya başka bir şekilde doğrulayın. – user3441734
sakin ol. Başka birinin benzer bir soruna sahip olması için genel bir şablon yazarım. hiçbir parametre yazmam. cevabımı çok okuyorsun –
sorunumu çözüldü için
o iş. Teşekkür ederim. – Statik
Birden fazla olsa bile yalnızca ilk anahtarı döndürür. – zaph
fonk findKeysForValue (value: Sözlük: [dize: [dize]]) -> [dize] { var tuşları = [dize]() sözlükte { halinde (dizi (anahtar, dizi) için . yardım için (değer)) { keys.append (anahtar) } } dönüş tuşları } – abintom