我有兩個不同資料型別的陣列
假設陣列1是一個[字串的]陣列字串
假設陣列 2 是一個 [Custom Objects]結構體陣列
請找一個代碼
struct ScanData{
var serialNo : String!
var intNo : String!
init(serialNo : String, intNo : String) {
self.serialNo = serialNo
self.intNo = intNo
}
}
var validScannedData : [String] = []
var inValidScannedData : [String] = []
var arrayObj = [ScanData(serialNo: "12220116033", intNo: "SN6AT4.270"),ScanData(serialNo: "12198144025", intNo: "SN6AT4.280"),ScanData(serialNo: "12222383027", intNo: "SN6AT4.130"),ScanData(serialNo: "12198213032", intNo: "SN6AT5.260"),ScanData(serialNo: "", intNo: "")]
//print(arrayObj)
//ScanData(serialNo: "12199690049", intNo: "SN6AT6U100")
var localArray = ["12220116033","12198144025","12222383027","12198213032","12199690049"]
let tempArray = arrayObj.filter { data in
return data.serialNo != "" || data.intNo != ""
}
print(tempArray.count)
現在我們想通過匹配serialNo鍵從localArray和tempArray 中獲取公共值
最后我想在validScannedData物件中有字串格式陣列
預期輸出:
有效資料:["12220116033","12198144025","12222383027","12198213032"]
無效資料:[“12199690049”]
我試過了,但它列印自定義物件陣列
let a = tempArray.filter () { localArray.contains($0.serialNo) }
print(a)
提前致謝
uj5u.com熱心網友回復:
使用forEach迭代的元素,然后檢查并追加根據陣列。
localArray.forEach { number in
arrayObj.contains(where: {$0.serialNo == number}) ? validScannedData.append(number) : inValidScannedData.append(number)
}
print(validScannedData)
print(inValidScannedData)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/350495.html
上一篇:WKWebView不加載滑塊影像
下一篇:il2cpp初始化失敗ios
