将字典映射到数组到字符串

格莫拉莱达

我正在处理一个字典,我需要将它解析成一个字符串来为 GraphQL 突变创建一个属性。我的字典是[String: Bool],我需要提取设置为true.

let dict: [String: Bool] = ["Objct1": true, "Objct2": false, "Objct3": true]

目前我正在使用四个函数(过滤器、枚举、映射和连接),虽然我得到了想要的结果,但我想知道我是否需要所有这些:

let string = dict.filter { $0.value }
    .enumerated()
    .map {
        return $0.offset == 0
            ? "\"\($0.element.key)\""
            : ", \"\($0.element.key)\""
    }
    .joined()

编辑:最后的字符串需要包含在"""Objct1", "Objct3""

大卫牧羊人

您可以使用一个单一的compactMap,因为首先你需要filterDictionary,只保留true值,那么你需要map将返回key对应的true值。但是,您始终可以将结果filtermap调用合并为单个compactMap,因为compactMap只保留non-nil值,因此您不必像 for 那样返回布尔值filter,如果您的条件评估为真,则返回您将在 中返回的任何内容map,否则返回nil

let trueKeys = dict.compactMap({key, value in value ? key : nil})

要加入键成一个字符串,你可以调用joined上的结果compactMap

let graphQueryString = dict.compactMap({key, value in value ? "\"\(key)\"" : nil}).joined(separator: ",") // ""Objct3","Objct1""

请记住,您的键的顺序不一定与您声明的 相同Dictionary,因为Dictionary根据定义它是一个无序集合。如果要保持排序,可以使用元组数组而不是 a Dictionary,其中元组将由键值对组成。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Ruby:将字符串数组映射到数组数组

将字符串数组映射到单个数组

将字符串数组映射到特定对象数组

将 PIN 映射到字符串数组和从字符串数组映射

使用AutoMapper将字符串数组映射到对象

Python-将字符串映射到布尔数组

如何将字符串数组映射到新的字符串数组?

将字符串映射到关系

将字符串映射到unsigned int到unsigned int的映射

java将字符串数据映射到python中的字典

Angular:将字符串数组映射到 http get 调用中的枚举值数组

根据其他数组值将字符串映射到数组的最佳方法

Dataweave-将多个字符串数组映射到单个数组

如何 Java 将多个条件从 int 数组映射到字符串数组

从可观察数组映射到不同的字符串数组

在映射的列包含较大字符串的情况下,将键从字典映射到值

python将字典映射到字典数组?

一致地将字符串映射到数组索引(哈希函数)

将字符串数组映射到对象键并获取值

使用Jackson将JSON字符串数组映射到List <String>

将 object.keys 从对象数组映射到字符串

使用Object.keys将数组错误映射到字符串(javascript)

将字符串数组映射到 JavaScript 中的 json 对象

将字符串数组映射到React-Native / ES6中的组件状态

Kotlin将&减少字符串数组映射到Map <String,Any!>

将包含字符串数组的Gremlin结果映射到包含简单字符串属性的C#类

将字符串字符映射到向量

Groovy中映射到字符串/字符串到映射的转换

Json用字符串和数组映射到