首页 > 解决方案 > 快速创建多个数组组合

问题描述

我有许多数组(我们称它们为数组 A、B、C 和 D)。

我希望能够使用每个数组的 UISwitches 切换主数组中包含的内容。

为避免重复所有组合(A、AB、AC、AD、ABC、ABD、ACD、ABCD、B、BC 等)的所有数组,有没有办法以编程方式执行此操作?

需要明确的是,“A”、“B”、“C”和“D”是四个不同的数组,而不是单个数组中的内容。

谢谢 - 任何帮助都非常感谢。

标签: swiftxcode

解决方案


以这样的事情为起点怎么样?

import Foundation

struct ArrayManager {

    var A: [Int] = []
    var B: [Int] = []
    var C: [Int] = []
    var D: [Int] = []

    var includeA = false
    var includeB = false
    var includeC = false
    var includeD = false

    var masterArray: [Int] {
        get {
            var result: [Int] = []

            if includeA { result.append(contentsOf: A) }
            if includeB { result.append(contentsOf: B) }
            if includeC { result.append(contentsOf: C) }
            if includeD { result.append(contentsOf: D) }

            return result
        }
    }
}

var manager = ArrayManager()

manager.A = [1, 2]
manager.B = [3, 4]
manager.C = [5, 6]
manager.D = [7, 8]

manager.includeA = true

print("manager.masterArray: \(manager.masterArray)")

manager.includeB = true

print("manager.masterArray: \(manager.masterArray)")

manager.includeC = true

print("manager.masterArray: \(manager.masterArray)")

manager.includeD = true

print("manager.masterArray: \(manager.masterArray)")

输出:

manager.masterArray: [1, 2]
manager.masterArray: [1, 2, 3, 4]
manager.masterArray: [1, 2, 3, 4, 5, 6]
manager.masterArray: [1, 2, 3, 4, 5, 6, 7, 8]

推荐阅读