【问题标题】:swift append new column to array快速将新列附加到数组
【发布时间】:2019-11-20 10:49:20
【问题描述】:

我想按行组织一个多维数组。 我有一个从一个主数组创建 3 个数组的函数。理想情况下,我想将这些子数组以列的形式添加到新数组中。

我尝试了以下方法:

/* Note

-subArray is a data structure where i have 3 values stored at each 
index index. these are named data1, data2, data3. I'm accessing them 
with the line chamberOne.append(thing.data1). this is referenced 
from tempCount's data. 

- data structure: 
at index # 1
 -data1
 -data1
 -data3

*/


static func subArray()->[String]
{
   var temp = mainArray[0...11]
   let tempCount = Array(temp)
   var returnArr: [String] = []

   var chamberOne: [String] = []
   for thing in tempCount
   {
      chamberOne.append(thing.data1)
   }
   // i have 2 more functions built the same as chamberOne, but they 
   //are named chamberTwo and chamberThree

   //as of right now I am appending like this
   returnArr + chamberOne + chamberTwo + chamberThree
  // this brings all the data into a single dimension array. 
}

我想要一种将chamberOnechamberTwochamberThree 追加为列或行的方法,两者都可以,我只想通过追加一维数组将某种形式的组织组织到多维空间中(@987654325 @) 到一个多维数组 (returnArr)。

【问题讨论】:

  • 房间是否相同length 或者可以是任何长度?
  • 长度都一样

标签: arrays swift multidimensional-array append


【解决方案1】:

假设您有两个数组,例如:

var arr1 = ["a", "b", "c"]
var arr2 = ["1", "2", "3"]

现在我们创建一个数组来保存其他数组,例如:

var multiDimArray = [[String]]() //Array of subarrays

我们现在可以将两个数组都添加到multiDimArray

multiDimArray.append(arr1)
multiDimArray.append(arr2)

如果我们打印multiDimArray,我们会得到[["a", "b", "c"], ["1", "2", "3"]]

如果我们需要第一个“行”,我们可以使用 multiDimArray[0] 得到它,这得到我们 ["a", "b", "c"]

【讨论】:

    【解决方案2】:

    如果我正确理解了您的问题,您需要[[String]] aka Array of Arrays of String。以下是我将如何修改您的函数以解决此问题:

    static func subArray() -> [[String]]
    {
       var temp = mainArray[0...11]
       let tempCount = Array(temp)
       var returnArr: [[String]] = []
    
       var chamberOne: [String] = []
    
       for thing in tempCount
       {
          chamberOne.append(thing.data1)
       }
    
       returnArr.append(chamberOne)
    
       //Initialise chamberTwo and chamberThree here. Then append to the 2D array.
       returnArr.append(chamberTwo)
       returnArr.append(chamberThree)
    
       //The returnArr now looks like this [chamberOne, chamberTwo, chamberThree]
       returnArr
    }
    

    【讨论】:

      猜你喜欢
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 2016-05-07
      • 1970-01-01
      相关资源
      最近更新 更多