【发布时间】:2018-01-25 21:51:55
【问题描述】:
数组是字符串类型。由于加“”比较耗时,所以我把它写成Int。对不起。
我有两个数组,比如 var array1 = [[1,2,3,4,5,6,7,8,9]] 和
var array2 = [[1,2,3,4],
[2,3,4,5],
[2,4,5,6],
[1,2,3,4,5,6,7,8,9],
[1,2,3,4,5,6,7,8],
[2,3,4,5,6,7,8]]
我必须将array2 的每个数组元素与array1 进行比较,并在元素不匹配的地方插入“-”。像这样,
var array2 = [[1,2,3,4,-,-,-,-,-],
[-,2,3,4,5,-,-,-,-],
[-,2,-,4,5,6,-,-,-],
[1,2,3,4,5,6,7,8,9],
[1,2,3,4,5,6,7,8,-],
[-,2,3,4,5,6,7,8,-]]
我尝试遍历 array2 中的每个数组并将其与 array1 进行比较,比较索引并将“-”插入到索引位置 i,但我得到了意想不到的结果。
更新
for item in array2{
var elementsArray = item
for i in stride(from: 0, to: elementsArray.count, by: 1) {
if elementsArray[i] != array1[i]
{
elementsArray.insert("-", at: i)
}
print("elemnt array.....", elementsArray, "\n\n")
}
}
我曾想过通过count 将array2 的每个数组与array1 进行比较,找到不常见元素的索引,然后在该索引位置插入'-'。这种方法对吗?请帮我解决这个问题。
【问题讨论】:
-
array1应该是一维数组还是数组数组?在后一种情况下,array1的第 i 个子数组是否应该与array2的第 i 个子数组进行比较? -
array2中的每个数组,其长度能否大于array1的长度? -
@DávidPásztor
array1只是一维的。 -
第二个数组中的数字是否总是出现在第一个数组中?数字总是在增加吗?
-
@Adeel no 它不能更大。 array2 中存在的数组的最大长度等于 array1