我有一个名为“数据”的多维数组,它被初始化为:
var data = [[String]]()
我可以毫无问题地将所有需要的数组添加到其中。
我面临的问题是我需要所有包含的数组都具有相同数量的值(我正在创建电子表格并且我需要在每个数组中具有相同数量的“列”)。为此,我正在尝试:
- 找出最长数组的个数
- 在每个数组的末尾附加一些“”(即空白值)以等于最大计数
我在找出如何做这些事情中的任何一个方面都取得了零成功。有什么建议吗?
最佳答案
您可以在 data
上使用 max
函数来获取最长数组的元素数。
然后您可以遍历数组的每个元素并附加 ""
直到它达到所需的大小。
这里有一个例子:
var data = [[String]]()
data = [["aaa", "bbb"], ["aaa", "bbb", "ccc"], ["aaa"]]
var longestArrayCount = data.max { $0.count < $1.count }?.count ?? 0
for (index, _) in data.enumerated() {
data[index].append(contentsOf: Array(repeating: "", count: longestArrayCount - data[index].count))
}
print(data)
Output: [["aaa", "bbb", ""], ["aaa", "bbb", "ccc"], ["aaa", "", ""]]
更新
应用@BallpointBen 建议的更改
关于arrays - 在 Swift 中将值附加到多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49323821/