Arrays 连接字符串和数字以形成数组名称

Arrays 连接字符串和数字以形成数组名称,arrays,swift,Arrays,Swift,这是我想做的 number = [ 0, 1, 2] array0 = [ "AA", "BB"] array1 = [ "CC", "DD"] array2 = [ "EE", "FF"] 我希望通过这样做能够引用数组的名称 selectedArray = "array" + String(number[2]) 然后,我希望能够引用其中的值,例如 pr

这是我想做的

number = [ 0, 1, 2]
array0 = [ "AA", "BB"]
array1 = [ "CC", "DD"]
array2 = [ "EE", "FF"]
我希望通过这样做能够引用数组的名称

selectedArray = "array" + String(number[2])
然后,我希望能够引用其中的值,例如

print("array2:\(selectedArray[1]))
/// The answer would be --> array2:FF
现在,我还没能做到这一点,我尝试了这个,但没有成功

selectedArray=数组(“数组”+字符串(数字[2]))

我试着在谷歌上搜索,但不知道如何描述这一点,结果并不令人满意


注意:该阵列是一个GPS距离/纬度/经度(非常长)的列表,而不是一个非常大的阵列,我正在考虑将它们分为10个不同的阵列,例如:10个不同的阵列

我不确定我是否正确理解您试图实现的目标和逻辑,但您可以创建一个阵列(纬度和经度)。大概是这样的:

let number = [0,1,2] // not sure why you need this array 
let array = [[ "AA", "BB"],
            [ "CC", "DD"],
            [ "EE", "FF"]]
let selectedNumber = number[2]
print("array\(selectedNumber):\(array[selectedNumber][1])")
然而,我建议使用这种方法:

  • 为您的坐标创建一个模型

    struct Coordinates {
         var lat:String    //this should be a Double but 
                          //for the sake of  the example I use String
         var long:String //Same here
     }
    
  • 然后在控制器中将数据添加到
    坐标数组中

     let coordinate1 = Coordinates(lat: "AA", long: "BB")
     let coordinate2 = Coordinates(lat: "CC", long: "DD")
     let coordinate3 = Coordinates(lat: "EE", long: "FF")
    
     let array2:[Coordinates] = [coordinate1,coordinate2,coordinate3]
     let selectedNumber = number[2]
     print("array\(selectedNumber):\(array2[selectedNumber].long)")
    
    哪一个还在打印

     array2:FF
    

  • 谢谢你的建议。最后,我没有使用这个,因为我继续并重新做了整个事情,而不是数组,我只是使用了一个json文件和jsondecoder。(基本上,我只是复制/粘贴了一些我已经做过的东西)。您的模型建议将适合我的用例tho,但最终,使用json文件会更简单(在我的例子中),因为无需在每次添加新坐标时更新“array2”。