быстро добавить новый столбец в массив - PullRequest
0 голосов
/ 10 июля 2019

Я хочу организовать многомерный массив по строкам.У меня есть функция, которая создала 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. 
}

Я хочу добавить chamberOne, chamberTwoи chamberThree в виде столбцов ИЛИ строк, все будет в порядке, я просто хочу, чтобы какая-то форма организации в многомерном пространстве добавлялась в массив 1d (chamberOne) к многомерному массиву (returnArr).

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Если я правильно понимаю ваш вопрос, вам нужен [[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
}
0 голосов
/ 10 июля 2019

Предположим, у вас есть два массива, например:

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"]

...