ios - 如何使用多个数组创建变体模型
问题描述
*From*
let size = ["Small", "Medium", "Large"]
let color = ["Green", "Blue", "Red"]
let mat = ["Wood", "Glass", "Plastic"]
*To*
let _ = ["Small", "Green", "Wood"]
let _ = ["Small", "Green", "Glass"]
let _ = ["Small", "Green", "Plastice"]
let _ = ["Small", "Blue", "Wood"]
let _ = ["Small", "Blue", "Glass"]
let _ = ["Small", "Blue", "Plastic"] and so on.
我想使用上面的数组创建一个表,并有一些类似于图像的东西。
[
解决方案
作为一个简单的实验,您可以定义嵌套循环来构建该输出:
var combined = [[String]]()
for size in sizes {
for color in colors {
for material in materials {
combined.append([size, color, material])
}
}
}
但!
它可以增长到一个庞大的数组,而数组不适用于这类表。你应该。考虑改用简单结构甚至字典之类的结构。
例如,看一下这个结构:
struct Product: Codable {
let size: String
let color: String
let material: String
}
因此,您可以使用前面的代码填充它,例如:
var products = [Product]()
for size in sizes {
for color in colors {
for material in materials {
products.append(Product(size: size, color: color, material: material))
}
}
}
你会有:
它现在是可搜索的、可扩展的、可排序的、可存储的,并且它具有许多其他开箱即用的功能。
推荐阅读
- python - 是否有 Python 函数可以通过同时操作数组中的许多项来解决或支持?
- java - 制作一个 Spring Boot 应用程序以从现有的 oracle 数据库加载数据?
- api - '指定的值不能转换为 ReleaseStartMetadata 类型。使用 powershell 触发 VSTS 发布 API 时显示的消息
- javascript - 导入 google api 字体以响应“预加载”属性
- c# - 验证选择是一个范围
- odoo - 如何以在 Odoo 服务器上上传的格式下载文件?
- java - 如何使用 AWS lambda 授权 gmail API
- c# - 类型约束,类型存储在变量中
- php - 如何在没有 sql 查询的情况下获取唯一数据
- python - 使用正则表达式一次提取两个模式