arrays - 快速处理 3-D 数组的每个维度

标签 arrays swift multidimensional-array for-in-loop

过去几天我一直在尝试学习如何快速将数据插入 3-D 数组中的每个索引。我试图通过 for-in 循环填充 3-D 数组。我知道这个例子是不正确的,因为当我试图为数组放置一个值时,我没有处理数组中的每个维度,但我不知道如何表达我的意思:

var arr = [[[String]]]()
var brand = ["ford", "dodge", "toyota", "ford", "Nissan"]
var engine = ["2.0", "2.5", "3.4", "4.0", "5.0"]
var gas_mile = ["30", "25", "20", "15", "10"]

for index_1 in 1...brand.count{
    arr[index_1] = brand[index_1]

    for index_2 in 1...engine.count{
        arr[index_1][index_2] = engine[index_2] 

        for index_3 in 1...gas_mile.count{
             arr[index_1][index_2][index_3] = gas_mile[index_3]
        }
    }
}

我知道你需要为数组 ex 的每个维度都有一个索引:

 arr[0][0][0] = gas_mile[0]

但我不知道您随后如何向数组的第一维添加一些内容,因为 swift 编译器期望添加一个二维数组 ([[String]]),而不是单个值:

arr[0] = brand[0]

所以我很困惑如何在向数组添加值时处理数组的第一维或第二维。我对 swift 没有什么经验,这就是为什么我要问你如何解决每个单独的维度。

最佳答案

这里有一个可能的解决方案

struct Archive {
    private var dict = [String:[String:Int]]()

    func miles(byBrand brand: String, andEngine engine: String) -> Int? {
        return dict[brand]?[engine]
    }

    mutating func set(miles: Int, forBrand brand: String, andEngine engine:String) {
        var milesDict = dict[brand] ?? [String:Int]()
        milesDict[engine] = miles
        dict[brand] = milesDict
    }
}

它是如何工作的?

如您所见,数据存储在一个字典中,其中键是 brand name,值是另一个字典,它的键是引擎,值是里程。

如何使用

第 1 步:创建您的 Archive

var archive = Archive()

第二步:存储数据

archive.set(miles: 1, forBrand: "Ford", andEngine: "2.0")
archive.set(miles: 2, forBrand: "Ford", andEngine: "3.0")
archive.set(miles: 3, forBrand: "Ford", andEngine: "4.0")
archive.set(miles: 4, forBrand: "Ford", andEngine: "5.0")
archive.set(miles: 5, forBrand: "Audi", andEngine: "2.0")

第三步:读取数据

archive.miles(byBrand: "Ford", andEngine: "2.0") // 1
archive.miles(byBrand: "Ford", andEngine: "3.0") // 2
archive.miles(byBrand: "Ford", andEngine: "4.0") // 3
archive.miles(byBrand: "Ford", andEngine: "5.0") // 4
archive.miles(byBrand: "Audi", andEngine: "3.0") // 5

关于arrays - 快速处理 3-D 数组的每个维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47480703/

相关文章:

PHP 在数组中存储对象引用

arrays - 如何在 PowerShell 中 "zip"两个数组?

ios - Swift - 远程通知和导航 Controller 流程

python - 如何对二维数组进行平均?

Swift 2 将 "contains"函数与多维数组一起使用

Python:折线周围的坐标框

python - Python中多对的相同操作

ios - UutableView 选定的单元格到其他 View

iOS Swift - 加载自定义表格单元格

PHP 通过遍历嵌套树模型构建数组