有没有更实用的方法将数组重新排列成字典

时间:2020-02-06 23:49:59

标签: ios swift functional-programming

我想知道是否有更好的功能将数组重新排列成字典,其中每个键是另一个包含2个项目的数组?

我已经举了两个例子,但是我仍然在学习函数式编程,无法获得更好的解决方案。谢谢大家!

[编辑]

@bcal为此提供了很好的解决方案;我认为任何人都可以为其他解决方案做出贡献!

new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLID)))

结果打印:

result print

2 个答案:

答案 0 :(得分:1)

Dictionary具有一个初始化程序,该初始化程序接受{/ {1}}键/值对,以及一个用于解析具有重复键的对的闭包。 https://developer.apple.com/documentation/swift/dictionary/3127161-init

Sequence

第一个参数是功能序列...

myIndexTwoObjArr = [Int: [String]]( myObjArray.enumerated().map({($0.0/2, [$0.1])}), uniquingKeysWith: + ) 将数组的元素转换为enumerated元组的序列,其中元组中的第一个值是元素的索引。

(Int, String)map元组转换为(Int, String)元组,其中第一个值为索引÷2,第二个值为包含单个{{ 1}}。

(Int, [String])初始化程序的第二个参数是将数组与匹配键组合在一起的闭包。

答案 1 :(得分:-1)

您可以尝试这个。

var index: Int = 0
let myIndexTwoObjArr = Dictionary(grouping: myObjArray, by: { _ -> Int in
    index += 1
    return index
})

希望有帮助。 :)

相关问题