我有两个数组:
fruitsArray = ["apple", "mango", "blueberry", "orange"]
vegArray = ["tomato", "potato", "mango", "blueberry"]
Run Code Online (Sandbox Code Playgroud)
如何获得这两个数组中的常用项列表
ouptput = ["mango", "blueberry"]
Run Code Online (Sandbox Code Playgroud)
我无法使用,if contains(array, string)
因为我想比较2个数组.
我有两个数组.Array1包含15个对象,Array2包含4个对象.两个数组都有两个常见的对象,我只想得到那两个对象的结果数组.
它应该像两个Set的交集,但是如何在Objective C中为数组做..?请帮忙.谢谢.
我是Swift Lang的新手,看过很多教程,但目前还不清楚 - 我的问题是Array
,Set
和Dictionary
集合类型之间的主要区别是什么?
Set是一系列独特元素的无序集合.几乎与数组类似.
我想在一个Set
中添加/插入多个元素String
.但是只提供了一种方法,只能插入一个元素(接受单个Set元素作为参数参数),我收集了字符串(id).
@discardableResult mutating func insert(_ newMember: Set.Element) -> (inserted: Bool, memberAfterInsert: Set.Element)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我尝试过:
我尝试创建一个非常类似于insert(_:)
方法的扩展,但它可以接受多个Set元素.它与使用迭代而不是集合相同,但不需要在任何地方手动处理它.
extension Set {
@discardableResult mutating func insert(_ newMembers: [Set.Element]) -> (inserted: Bool, memberAfterInsert: Set.Element) {
newMembers.forEach { (member) in
self.insert(member)
}
}
}
Run Code Online (Sandbox Code Playgroud)
它应该工作,如果我按预期返回一个元组但不知道如何以及在哪里(哪一行)以及返回值的内容.
这是错误消息.
期望返回的函数中缺少返回'(inserted:Bool,memberAfterInsert:Set.Element)'
什么可以解决这个问题.是否有更好的解决方案/方法来处理此操作?
我有2个阵列.说,array1 = [1,2,3,4,5]
和array2 = [2,3]
.如果array1
包含至少一个项目,我怎么能检查swift array2
?
我需要过滤掉一组MyClass3对象.MyClass2对象的数组是MyClass3对象的成员(请参阅下面的代码).MyClass2对象有一个id.我手边有一个idArray.我需要过滤掉那些MyClass3对象,其中idArray中的所有id都存在于其[MyClass2]成员中.
class MyClass2 : NSObject {
var uid: Int = 0
init(uid : Int) {
self.uid = uid
}
}
class MyClass3 : NSObject {
var arr: [MyClass2]
init(units: [MyClass2]) {
arr = units
}
}
var units1 = [MyClass2(uid: 1),MyClass2(uid: 2), MyClass2(uid: 3), MyClass2(uid: 4), MyClass2(uid: 5)]
var units2 = [MyClass2(uid: 4),MyClass2(uid: 5), MyClass2(uid: 6)]
var units3 = [MyClass2(uid: 3),MyClass2(uid: 5), MyClass2(uid: 7), MyClass2(uid: 1)]
var ids = [1,5]
var available3: [MyClass3] = [MyClass3(units: units1), MyClass3(units: units2), MyClass3(units: units3)] …
Run Code Online (Sandbox Code Playgroud) 希望您度过愉快的一天。
我试图了解执行以下操作的最快方法是什么:
假设我有这两个Arrays
:
var firstArray = ["a","b","c"]
var secondArray = ["a","d","e"]
Run Code Online (Sandbox Code Playgroud)
我想得到以下输出:
1)位于 内部但不位于 中Array
的对象。
1)位于 内部但不位于 中的对象。
3)和之间的共同对象。 firstArray
secondArray
Array
secondArray
firstArray
Array
firstArray
secondArray
所以基本上输出是:
1) ["b","c"]
2) ["d","e"]
3)["a"]
这里的主要问题是了解什么是最有效的方法。非常感谢!
我有两个数组,我正在比较[Int]
let filter = strongAgainstArray.filter{weakAgainstArray.contains($0)}
Run Code Online (Sandbox Code Playgroud)
这将返回2个数组中的公共值数组.然后我想通过并从每个数组中删除这些值,我正在这样做
for item in filter {
for var i = 0; i < strongAgainstArray.count; i += 1 {
if item == strongAgainstArray[i] {
strongAgainstArray.removeAtIndex(i)
print("Removing a Strong against index \(item)")
}
}
for var i = 0; i < weakAgainstArray.count; i += 1 {
if item == weakAgainstArray[i] {
weakAgainstArray.removeAtIndex(i)
print("Removing a Weak against index \(item)")
}
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我们可以说我的一个数组包含两个条目12
作为示例.我如何只删除其中一个?目前,所有条目12
都被完全删除.
编辑
我现在正在比较我的两个数组
let commonValues = Array(Set(strongAgainstArray).intersect(weakAgainstArray))
然后是commonValues
每个数组中的那些
cleanStrongAgainstArray = …
Run Code Online (Sandbox Code Playgroud) swift ×7
ios ×5
arrays ×4
set ×2
array-filter ×1
arraylist ×1
collections ×1
dictionary ×1
intersection ×1
iphone ×1
nsmutableset ×1
nspredicate ×1
objective-c ×1
performance ×1
sorting ×1
tuples ×1