首页 > 解决方案 > 如何使用多个数组创建变体模型

问题描述

    *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.

我想使用上面的数组创建一个表,并有一些类似于图像的东西。

[Shopify 样品1

标签: iosarraysswifte-commerce

解决方案


作为一个简单的实验,您可以定义嵌套循环来构建该输出:

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))
        }
    }
}

你会有:

演示 2

它现在是可搜索的、可扩展的、可排序的、可存储的,并且它具有许多其他开箱即用的功能。


推荐阅读