Как убрать подчеркивание и символы после него из элементов в словаре - PullRequest
0 голосов
/ 12 марта 2020

У меня есть словарь, который выглядит следующим образом.

    ["price_2": 20.0, "stock_2": 100, "volume_2": "2L", "sku_2": 2, "volume_0": "1L", "sku_0": 1, "price_0": 10.0, "stock_0": 100]

Я сгруппировал их по последнему символу. И чтобы удалить подчеркивание и символ после него, я использую key.droplast (2), но это не сработает, когда после подчеркивания появляется больше символов, например, когда ключ становится volume_150.

    Code:
    let dict = Dictionary(grouping: displayValues) { String($0.key.suffix(1)) }.mapValues { 
    $0.reduce(into: [:]) { $0[$1.key.dropLast(2)] = $1.value } }


    Result:
    ["2":["price": 20.0, "stock": 100, "volume": "2L", "sku": 2], 
    "0": ["volume": "1L", "sku": 1, "price": 10.0, "stock": 100]]

Как удалить подчеркивание и символы после него?

1 Ответ

2 голосов
/ 12 марта 2020

Используйте .split (разделитель: "_"). Сначала , чтобы получить ключи, как вы просили.

let yourDictionary =  ["price_2": 20.0, "stock_2": 100, "volume_2": "2L", "sku_2": 2, "volume_0": "1L", "sku_0": 1, "price_0": 10.0, "stock_0": 100] as [String : Any]

for key in yourDictionary.keys {
    let newKey = key.split(separator: "_").first
    print(newKey!)
}
...