如何檢查一個元素是否在數組中?
本文將解釋如何在Swift語言中檢查一個元素是否存在于數組中。愛掏網 - it200.com
在Swift中有幾種方法可以檢查一個元素是否在數組中 –
contains(_:)方法在數組中包含目標元素時返回true。愛掏網 - it200.com這個方法只適用于元素符合Equatable協議的數組。愛掏網 - it200.com
這里是一個使用包含數組的字符串的例子。愛掏網 - it200.com字符串符合Equatable協議,所以我們可以在此處使用contains方法。愛掏網 - it200.com
算法
- 第1步 – 創建一個包含字符串的輸入數組
-
第2步 – 通過傳遞目標元素來調用contains()方法
-
第3步 – contains()方法返回一個布爾值
示例
import Foundation
let languages = ["PHP", "Java", "Python", "JavaScript", "Swift", "Objective-C"]
let targetElement = "Swift"
print ("Given array =",languages,"\nElement to search =",targetElement)
if languages.contains(targetElement) {
print("\(targetElement) is in the array.")
} else {
print("\(targetElement) is not in the array.")
}
輸出
Given array = ["PHP", "Java", "Python", "JavaScript", "Swift", "Objective-C"]
Element to search = Swift
Swift is in the array.
使用 contains(where:) 方法
contains(where:) 是 Swift 中 Sequence 協議的一個方法,它返回一個布爾值,指示序列是否包含滿足給定斷言的元素。愛掏網 - it200.com
算法
- 步驟1 – 創建一個輸入字符串數組
-
步驟2 – 調用 contains(where:) 方法
-
步驟3 – 在 contains(where:) 函數的閉包中檢查目標元素
-
步驟4 – contains(where:) 方法返回一個布爾值
示例
下面是一個示例,演示如何使用 contains(where:) 來檢查字符串數組是否包含一個字符串 ?
import Foundation
let languages = ["PHP", "Java", "Python", "JavaScript", "Swift", "Objective-C"]
let targetElement = "Swift"
print ("Given array =",languages,"\nElement to search =",targetElement)
if languages.contains(where: { $0 == targetElement }) {
print("\(targetElement) is in the array.")
} else {
print("\(targetElement) is not in the array.")
}
輸出
Given array = ["PHP", "Java", "Python", "JavaScript", "Swift", "Objective-C"]
Element to search = Swift
Swift is in the array.
示例
您還可以使用contains(where:)在自定義類型的數組中搜索元素,只要您提供一個返回布爾值的謂詞,該謂詞指示元素是否滿足某個條件。愛掏網 - it200.com例如,
import Foundation
struct Student {
let name: String
let score: Int
}
let students: [Student] = [Student(name: "John", score: 80),
Student(name: "Tina", score: 75),
Student(name: "Bob", score: 89),
Student(name: "Alice", score: 67)]
print(students)
if students.contains(where: { $0.score > 80 }) {
print("The student array contains a student who scored more than 80%.")
} else {
print("The student array does not contain any students who scored more than 80%.")
}
輸出
[main.Student(name: "John", score: 80), main.Student(name: "Tina", score: 75), main.Student(name: "Bob", score: 89), main.Student(name: "Alice", score: 67)]
The student array contains a student who scored more than 80%.
使用filter方法
filter方法是Swift中的一種高階函數,它允許您通過僅包含滿足某個條件的元素來創建一個新數組。愛掏網 - it200.com
算法
- 第1步 – 創建一個字符串的輸入數組
-
第2步 – 調用filter()函數
-
第3步 – 在filter()函數的閉包中檢查目標元素
-
第4步 – filter()函數返回一個新的搜索元素數組
-
第5步 – 檢查結果數組是否為空
示例
下面是一個示例,演示如何使用filter檢查一個元素是否在數組中:
let languages = ["PHP", "Java", "Python", "JavaScript", "Swift", "Objective-C"]
let targetElement = "Swift"
print ("Given array =",languages,"\nElement to search =",targetElement)
let filteredElements = languages.filter({ $0 == targetElement })
if filteredElements.isEmpty == false {
print("\(targetElement) is in the array.")
} else {
print("\(targetElement) is not in the array.")
}
輸出
Given array = ["PHP", "Java", "Python", "JavaScript", "Swift", "Objective-C"]
Element to search = Swift
Swift is in the array.
使用firstIndex(of:)方法
firstIndex(of:)是Swift中RandomAccessCollection協議的一個方法,它返回集合中第一個與給定元素相等的元素的索引,如果未找到該元素,則返回nil。愛掏網 - it200.com
以下是如何使用firstIndex(of:)在數組中查找特定元素的索引的示例 –
算法
- 步驟1 – 創建一個字符串的輸入數組
-
步驟2 – 調用firstIndex()函數
-
步驟3 – 如果目標元素包含在輸入數組中,則返回目標元素的索引
-
步驟4 – firstIndex()函數返回第一個索引
-
步驟5 – 檢查第一個索引是否有效
示例
import Foundation
let languages = ["PHP", "Java", "Python", "JavaScript", "Swift", "Objective-C"]
let targetElement = "Swift"
print ("Given array =",languages,"\nElement to search =",targetElement)
if let index = languages.firstIndex(of: targetElement) {
print("\(targetElement) is in the array at index \(index).")
} else {
print("\(targetElement) is not in the array.")
}
輸出
Given array = ["PHP", "Java", "Python", "JavaScript", "Swift", "Objective-C"]
Element to search = Swift
Swift is in the array at index 4
使用for循環
算法
-
Step 1 – 創建一個字符串輸入數組
-
Step 2 – 對輸入數組執行for循環
-
Step 3 – 檢查目標元素是否包含在輸入數組中
-
Step 4 – 如果找到目標元素,中斷for循環執行
示例
import Foundation
let languages = ["PHP", "Java", "Python", "JavaScript", "Swift", "Objective-C"]
let targetElement = "Swift"
print ("Given array =",languages,"\nElement to search =",targetElement)
for language in languages {
if language == targetElement {
print("\(targetElement) is in the array.")
break
}
}
輸出
Given array = ["PHP", "Java", "Python", "JavaScript", "Swift", "Objective-C"]
Element to search = Swift
Swift is in the array.
結論
我們有不同的方法來檢查一個元素是否在數組中。愛掏網 - it200.com每種方法都有確定結果的時間復雜度。愛掏網 - it200.com根據您的需求,您可以使用任何方法。愛掏網 - it200.com