gpt4 book ai didi

swift - 给定两个包含不同容量数组的字典,将元素添加到填充较少的数组

转载 作者:行者123 更新时间:2023-11-28 12:24:16 24 4
gpt4 key购买 nike

所以给定这个数据

var data = 
["groupA":
[1, 2, 3, 4, 5, 6],
"groupB":
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]

我想要这个输出:

["groupA":
[0, 0, 0, 0, 1, 2, 3, 4, 5, 6],
"groupB":
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]

这是我能想到的最佳答案,但我觉得它缺乏,因为我可以访问我想在 reduce 函数中改变的累加器。

let maxElement = data.reduce(data.first!) { (acc, obj) in
return acc.value.count > obj.value.count ? acc : obj
}

for dict in data {
if dict.value.count < maxElement.value.count {
var mutableValues = dict.value
mutableValues.insert(0, at: 0)
data[dict.key] = mutableValues
}
}

我想我不明白如何最好地重构我的 reduce 函数。

最佳答案

如果你像我一样不喜欢 for 循环,那么这个怎么样:

data.reduce(data.values.reduce(0){max($0,$1.count)})
{ data[$1.0] = Array(repeating:0,count:$0-$1.1.count) + $1.1; return $0}

关于swift - 给定两个包含不同容量数组的字典,将元素添加到填充较少的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43794320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com