在Swift中将值附加到多维数组

时间:2018-03-16 15:01:38

标签: arrays swift

我有一个名为'data'的多维数组,初始化如下:

var data = [[String]]()

我可以毫无问题地添加所有必需的数组。

我面临的问题是我需要所有包含的数组具有相同数量的值(我正在创建一个电子表格,我需要在每个数组中具有相同数量的'列')。要做到这一点,我想:

  1. 查找最长数组的计数
  2. 在每个数组的末尾附加一些“”(即空白值)以等于最大计数
  3. 我没有成功找到如何做这些事情。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以在max上使用data函数来获取最长数组的元素数。

然后你可以遍历数组的每个元素并附加"",直到达到所需的大小。

这里有一个例子:

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)
  

输出:[[“aaa”,“bbb”,“”],[“aaa”,“bbb”,“ccc”],[“aaa”,“”,“”]


更新

@BallpointBen建议的应用更改