我想知道是否有更好的功能将数组重新排列成字典,其中每个键是另一个包含2个项目的数组?
我已经举了两个例子,但是我仍然在学习函数式编程,无法获得更好的解决方案。谢谢大家!
[编辑]
@bcal为此提供了很好的解决方案;我认为任何人都可以为其他解决方案做出贡献!
new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLID)))
结果打印:
答案 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
})
希望有帮助。 :)