合并 Swift 中的两个 NSMutableArray

Merge two NSMutableArray in Swift

我有两个 NSMutableArray:

let value = data as NSDictionary
                let array_item : NSArray! = (value.value(forKey: "mids") as! NSArray)
                if let array = array_item {
                    let array_list : NSMutableArray! =  NSMutableArray(array:array)
                    let array_list_checksum : NSMutableArray = NSMutableArray()
                    let array_list_server_version : NSMutableArray = NSMutableArray()
                    
                    for item in array_list {
                        let dic_item : NSDictionary! = item as? NSDictionary
                        if let dic = dic_item {
                            array_list_checksum.add(dic.value(forKey: "checksum")!)
                            array_list_server_version.add(dic.value(forKey: "server_version")!)
                            array_server_versions = array_list_server_version
                        }
                    }

在array_list_checksum中我有这样的字符串:“efopfkefokepre4345345345345”,在array_list_server_versions中我有这样的字符串:“2018年的2.0版” 我需要做的是以这种格式合并每个校验和和每个服务器版本的信息: “version 2.0 in 2018 checksum: efopfkefokepre4345345345345”,数组中没有包含“checksum”字样。 所以我的问题是在 Swift 中合并这两个 NSMutableArray 以及如何在两个值之间添加单词“checksum:”。

您有两个要合并的数组:

let array_list_checksum : NSMutableArray = NSMutableArray()
let array_list_server_version : NSMutableArray = NSMutableArray()

使用 zip 运算符将数组值合并成对的元组。并使用 map 运算符创建具有所需格式的合并数组:

let merged = zip(array_list_server_version, array_list_checksum).map{
    "\([=11=]) checksum: \()"
}

如果需要,将结果数组转换为 NSMutableArray:

let mergedArray = NSMutableArray(array: merged)

几点注意事项:

  • 使用 swift 默认数组和字典,如果你有 swift-only 项目
  • CamelCase in iOS 优于 snake_case