gpt4 book ai didi

arrays - 在两个数组中查找共同的精确元素

转载 作者:行者123 更新时间:2023-11-28 10:49:11 26 4
gpt4 key购买 nike

我有两个数组。示例:

firstArray = ["9,54,59,60,66,362,372,399,400,411,428"]
secondArray - ["9,40,62,399"]

let newArray = firstArray.filter { (string) -> Bool in
return secondArray.contains(string)

但是,我的 newArray 返回 4 个结果,而只有两个匹配 4062 是“匹配” 400362 错误。

我找到了这个问题,帮助我拉近了距离,但没有解决精确匹配错误。 How to get list of common elements of 2 array in swift由 RAJAMOHAN-S 回答

如何将其设置为仅获得完全匹配?

更新:有些地方工作不正常。

根据下面的内容,我有以下代码:

            subGroupArrayResult.insert("[", at: subGroupArrayResult.startIndex)
subGroupArrayResult.insert("]", at: subGroupArrayResult.endIndex)
arraySpeciesIDResult.insert("[", at: arraySpeciesIDResult.startIndex)
arraySpeciesIDResult.insert("]", at: arraySpeciesIDResult.endIndex)


let newArray = subGroupArrayResult.filter { (string) -> Bool in
return arraySpeciesIDResult.contains(string)
}

print("subGroupArrayResult is \(subGroupArrayResult)")
print("arraySpeciesIDResult is \(arraySpeciesIDResult)")
print("new Array is \(newArray)")

但是,这里是打印结果:

subGroupArrayResult is [695,696,697,698,1070,1071,1072,1073,1074,1075,1076,1368,1409,1526,1628,1781,2067,2068,2106,2107,2159]
arraySpeciesIDResult is [699,836,1266,1281,1426,1447,1474,1784,699,836,1266,1314,1426,1447,1474,1764,1784,1905,699,836,1266,1314,1426,1447,1474,1784,699,836,1266,1426,1447,1474,1784,699,836,1266,1426,1447,1474,1784,699,836,1426,1447,1474,1784]
new Array is ["[", "6", "9", "5", ",", "6", "9", "6", ",", "6", "9", "7", ",", "6", "9", "8", ",", "1", "0", "7", "0", ",", "1", "0", "7", "1", ",", "1", "0", "7", "2", ",", "1", "0", "7", "3", ",", "1", "0", "7", "4", ",", "1", "0", "7", "5", ",", "1", "0", "7", "6", ",", "1", "3", "6", "8", ",", "1", "4", "0", "9", ",", "1", "5", "2", "6", ",", "1", "6", "2", "8", ",", "1", "7", "8", "1", ",", "2", "0", "6", "7", ",", "2", "0", "6", "8", ",", "2", "1", "0", "6", ",", "2", "1", "0", "7", ",", "2", "1", "5", "9", "]"]

最佳答案

我在 swift playground 中运行了你的确切代码,得到的 newArray 等于一个空数组。这是因为 firstArray 只包含一个对象,String

"9,54,59,60,66,362,372,399,400,411,428"

逗号不会将字符串分成更小的字符串或整数。引号内的所有字符都是字符串的一部分,包括逗号。

secondArray 也只包含一个字符串

"9,40,62,399"

过滤firstArray会测试字符串“9,40,62,399”是否包含字符串“9,54,59,60,66,362,372,399,400,411,428”,为假,所以newArray为空。

如果您删除数组开头和结尾的引号,则所有数字都是 Ints,并且同一函数返回仅匹配 [9, 399] 的 newArray。

对于整数

let firstArray = [9,54,59,60,66,362,372,399,400,411,428]
let secondArray = [9,40,62,399]

let newArray = firstArray.filter { (string) -> Bool in
return secondArray.contains(string)
}
// Returns [9, 399]

对于字符串

let firstArray = ["9","54","59","60","66","362","372","399","400","411","428"]
let secondArray = ["9","40","62","399"]

let newArray = firstArray.filter { (string) -> Bool in
return secondArray.contains(string)
}
// Returns ["9", "399"]

关于arrays - 在两个数组中查找共同的精确元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46965366/

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