我有5个阵列。我从数组中删除了重复项。但是,我无法在新数组中存储新值。我按照以下方法在运行时转换。以下逻辑将发生在循环内。但是,我非常谨慎地展示了我的逻辑。我无法将整数数组转换为int。所以我试着将整数数组转换为String。但失败了。我的编码如下。
var arr_1 = [Int]()
var arr_2 = [Int]()
var arr_3 = [Int]()
var arr_4 = [Int]()
var arr_5 = [Int]()
var arr_final = [Int]()
arr_1 = [2,2,2,2,2,2]
arr_2 = [3,3,3]
arr_3 = [5,5,5,5,5]
arr_4 = [1,1,1,1]
arr_5 = [0]
我的输出为:
arr_final = [2,3,5,1,0]
我的编码
var str_1 = String(stringInterpolationSegment: uniq(arr_1)).toInt()
arr_final.append(str_1!) //PRINTS FATAL ERROR
//REMOVE DUPLICATES
func uniq<S: SequenceType, E: Hashable where E==S.Generator.Element>(source: S) -> [E] {
var seen: [E:Bool] = [:]
return filter(source) { seen.updateValue(true, forKey: $0) == nil }
}
答案 0 :(得分:3)
函数uniq
始终返回Int
数组。
将Array
附加到现有Array
使用extend
而不是append
var arr_final = [Int]()
let arr_1 = [2,2,2,2,2,2]
let result = uniq(arr_1)
arr_final.extend(result)