【发布时间】:2017-11-24 22:25:51
【问题描述】:
过去几天我一直在尝试学习如何在 swift 中将数据插入到 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 的经验很少,这就是为什么我要问你如何解决每个单独的维度。
【问题讨论】:
-
由于您的代码无法编译,现在很容易理解您想要做什么。看来您正在构建一个 5 x 5 x 5 数组。您能描述一下应该如何填充通用单元格
(i, j, k)吗? -
我希望它是这样的:
brand:engine:gas mileage所以它看起来像这样对于第一个维度和所有其他单元格(ford, 2.0, 30), (ford, 2.5, 25), (ford, 3.4, 20), (ford, 4.0, 15), (ford, 5.0, 10)我没有添加 6 个值gas_mile 数组,我的意思是 5 x 5 x 5 数组 -
将您的 3 个组件包装到一个名为
MyIndex的对象/结构中。使其成为Hashable,创建字典[MyIndex: String]。这对你有用吗? -
我不确定,就像我说的我对 swift 没有什么经验,所以我会研究一下。感谢您对此的投入并为我的问题提供解决方案。我只是认为用 for-in-loop 解决它会更容易,但我错了。
标签: arrays swift multidimensional-array for-in-loop