swift - 快速创建多个数组组合
问题描述
我有许多数组(我们称它们为数组 A、B、C 和 D)。
我希望能够使用每个数组的 UISwitches 切换主数组中包含的内容。
为避免重复所有组合(A、AB、AC、AD、ABC、ABD、ACD、ABCD、B、BC 等)的所有数组,有没有办法以编程方式执行此操作?
需要明确的是,“A”、“B”、“C”和“D”是四个不同的数组,而不是单个数组中的内容。
谢谢 - 任何帮助都非常感谢。
解决方案
以这样的事情为起点怎么样?
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]
推荐阅读
- vba - 通过分隔符将多列拆分为行
- amazon-web-services - 如何根据较早的响应在 Amazon Lex 中给出特定的意图响应?
- spring - Spring测试事务线程
- json - 如何解组不同数据类型的 JSON 数组?
- reactjs - 使用 3rd 端服务器反应 axios Cors 策略错误
- java - org.json.simple 和 org.json 的区别
- node.js - 从 React 到 Node.js 的 POST 请求
- kubernetes - Helm:客户端和服务器之间的版本不兼容
- javascript - 通过 HTML 将对象的名称传递给 javascript
- eclipse - Google Cloud Endpoint 为空(API 资源管理器)