Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 比较2个阵列,并根据swift 5(如果存在)创建一个新阵列_Arrays_Swift_Compare - Fatal编程技术网

Arrays 比较2个阵列,并根据swift 5(如果存在)创建一个新阵列

Arrays 比较2个阵列,并根据swift 5(如果存在)创建一个新阵列,arrays,swift,compare,Arrays,Swift,Compare,我有两个阵列: 其中一个包含保留字列表 var reservedWords = ["var", "if", "for", "switch", "int", "class"]; var varNames = ["if", "var", "identifier, "thisIsAnIdentifier", "b13", "a", "i", "number_1", "switch", "int", "class"]; 下一个包含可能的变量名(包括一些“保留字”) 我想比较两个数组,并创建一个新的数

我有两个阵列:

其中一个包含保留字列表

var reservedWords = ["var", "if", "for", "switch", "int", "class"];
var varNames = ["if", "var", "identifier, "thisIsAnIdentifier", "b13", "a", "i", "number_1", "switch", "int", "class"];
下一个包含可能的变量名(包括一些“保留字”)

我想比较两个数组,并创建一个新的数组,其中只包含那些不在“reservedWords”中的单词。新阵列应如下所示:

var newArray = ["identifier, "thisIsAnIdentifier", "b13", "a", "i", "number_1"]

您可以简单地执行以下操作:

let newArray = varNames.filter({!reservedWords.contains($0)})

您可以使用
.filter
执行此操作:

var reservedWords = ["var", "if", "for", "switch", "int", "class"]
var varNames = ["if", "var", "identifier", "thisIsAnIdentifier", "b13", "a", "i", "number_1", "switch", "int", "class"]

let newArray = varNames.filter {!reservedWords.contains($0)}
这是输出:


另一种方法是,特别是
设置.subtract
(修改列表)或
设置.subtraction
(创建新列表)。因为集合是唯一的,所以它的性能应该更好

let employees: Set = ["Alicia", "Bethany", "Chris", "Diana", "Eric"]
let neighbors = ["Bethany", "Eric", "Forlani", "Greta"]
let nonNeighbors = employees.subtracting(neighbors)
print(nonNeighbors)
“[“克里斯”、“戴安娜”、“艾丽西亚”]”


请告诉我们你已经尝试了什么/做了什么Well,实际上我正在努力做一些更难的事情,我只是想知道如何做比较你的问题在复习中出现了,所以我只是就如何写更好的问题给出了一些反馈:)你好,我已经问了另一个问题,我的真实问题在这里:希望你能帮助,谢谢!谢谢实际上它没有反勾号,我想是因为reservedWords介于“”之间,现在它们是字符串,但不管怎样,它工作得很好,谢谢@圣地亚哥是有道理的。我猜你可以很容易地将一个数组转换为一个集合,但是如果你只使用一次,它可能对性能没有帮助。性能不是什么大问题,因为我正在学习,而且这是一个学校项目,所以我需要批准课程。这是我问题的简历:谢谢!