gpt4 book ai didi

ios - 比较两个数组并找到SWIFT 3中不常见元素的索引

转载 作者:行者123 更新时间:2023-12-01 19:51:19 25 4
gpt4 key购买 nike

数组的类型为String 。由于添加“”非常耗时,因此我将其写为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进行比较,找到不常见元素的索引,然后在该索引位置插入'-'。这种方法正确吗?请帮我解决一下这个。

最佳答案

您需要一个新的数组,其中array2的每一行都被替换为array1,该行中最初不存在的元素被“-”替换:

let array1 = [1,2,3,4,5,6,7,8,9]
let 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]]

let filled = array2.map { row in
array1.map {
row.contains($0) ? String($0) : "-"
}
}

for row in filled { print(row) }

输出:

[“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”,“-”]

对于大型数组,可以通过创建 Set(row)
更快的遏制检查,或利用这些元素
顺序递增。

您的方法无法正常工作,因为 elementsArray在迭代时被修改。

关于ios - 比较两个数组并找到SWIFT 3中不常见元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45735825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com