用特殊顺序的字符串填充2d数组

时间:2018-09-09 18:30:57

标签: arrays swift

我想用几个数组项填充2d数组。但是,我只能弄清楚如何在另一个数组之后追加数组。我真正想要的是在2d数组中创建一个新数组,其中包含来自简单数组的某些项。像这样:

  

//必需的结果myServerInfos = [[“” www.apple.com“,” error“,” no   数据“] [” www.google.com“,”错误“,”无数据“] [” www.amazon.com“,   “错误”,“无数据”] [“ www.bla.com”,“错误”,“无数据”]]

这些是我的数组:

迅速4

var myServerInfos = [[String]]()

let pings = ["www.apple.com", "www.google.com", "www.amazon.com", "www.bla.com"]
var statusImagesMain = ["error", "error", "error", "error"]
var serverStatusMain = ["no data", "no data", "no data", "no data"]

我知道我可以通过“ pings.first”访问第一个数组项,我知道应该遍历四个数组中的每个数组,将每个项目保存在一个新数组中,然后将它们附加到myServerInfos。我只是无法弄清楚具体如何做。

3 个答案:

答案 0 :(得分:1)

您可以尝试

let myServerInfos = (0..<pings.count).map{ 
  [pings[$0],statusImagesMain[$0],serverStatusMain[$0]] 
}

确保所有尺寸都必须相同

答案 1 :(得分:0)

zip()对于迭代两个数组(或更一般而言,序列)很有用 在平行下。目前没有相应的zip功能需要 超过2个序列,但是使用嵌套的zip()调用,您可以 所需结果

let myServerInfos = zip(zip(pings, statusImagesMain), serverStatusMain).map {
    [$0.0, $0.1, $1]
}

答案 2 :(得分:0)

如果您要查找的代码看起来像您的文本:

[roywell@test01 data]$ ~/readincsv.r 
[1] "list"
[1] 1