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

标签 arrays swift

我有一个名为“数据”的多维数组,它被初始化为:

var data = [[String]]()

我可以毫无问题地将所有需要的数组添加到其中。

我面临的问题是我需要所有包含的数组都具有相同数量的值(我正在创建电子表格并且我需要在每个数组中具有相同数量的“列”)。为此,我正在尝试:

  1. 找出最长数组的个数
  2. 在每个数组的末尾附加一些“”(即空白值)以等于最大计数

我在找出如何做这些事情中的任何一个方面都取得了零成功。有什么建议吗?

最佳答案

您可以在 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/

相关文章:

c# - foreach 是否在每次迭代时评估数组?

swift - 使用新的 AKSampler 和 SFZ 加载和播放(Round Robins)

swift - 在 Swift 中连接字符串和整数

xcode - 如何在 swift 中实例化 NSLayoutConstraint? (Xcode 6.1.1)

ios - 在 Swift 中禁用没有 UserInteractionEnabled 的单元格选择

swift - 如何强制为 OS X 中的应用程序重新加载首选项 plist?

C : Array of strings - Can input only n-1 strings for an input size of n

python - 如何使用另一个数组的值过滤 numpy 数组?

javascript - 根据值过滤对象数组

java - 在对象数组列表中搜索具有特定字段值的对象