[英]Filter an array in iOS shortcuts - how?
我有一個這樣的數組:
"vehicleStatus": [
{
"key": "TU_STATUS_PRIMARY_VOLT",
"value": "3.6"
},
{
"key": "TU_STATUS_PRIMARY_CHARGE_PERCENT",
"value": "100"
},
{
"key": "TU_STATUS_GSM_MODEM",
"value": "FUNCTIONING"
},
{
"key": "DOOR_IS_ALL_DOORS_LOCKED",
"value": "TRUE"
}
]
我想通過過濾數組而不是“重復每個項目”操作來檢索 DOOR_IS_ALL_DOORS_LOCKED 的值。
我已經在其他工具、JavaScript、Power Automate 等中過濾了 arrays。
這在 iOS 快捷方式中可能嗎?
我嘗試遍歷該數組中的所有 97 個項目,並在滿足條件時使用 IF 條件設置一個變量,然后稍后使用該變量,但它冗長而冗長,無法滿足我的需要。
你的問題的第一個解決方案,你已經完成了。 也許您已經通過手動使用 for 循環完成了此操作。
所以第二個選項是
if let arrEle = vehicleStatus.first { $0.key == "DOOR_IS_ALL_DOORS_LOCKED"} {
print(arrEle.value)
}
或者
if let arrEle = vehicleStatus.first { ($0 as? NsDict)?["key"] == "DOOR_IS_ALL_DOORS_LOCKED"} {
print((arrEle as? NsDict)?["value"] as? String)
}
或者
if let arrEle = vehicleStatus.first { ($0 as? NsDict)?["key"] == "DOOR_IS_ALL_DOORS_LOCKED"},
let val = (arrEle as? NsDict)?["value"] as? String {
print(val)
}
您可以通過以下方式更改數據管理
如果“vehicleStatus”具有您提供的所有數據,則所有數據都必須按字典進行管理。
let vehicleStatus = [
[
"key" : "TU_STATUS_PRIMARY_VOLT",
"value": "3.6"
],
[
"key" : "TU_STATUS_PRIMARY_CHARGE_PERCENT",
"value": "100"
],
[
"key" : "TU_STATUS_GSM_MODEM",
"value" : "FUNCTIONING"
],
[
"key" : "DOOR_IS_ALL_DOORS_LOCKED",
"value": "TRUE"
]
]
print(vehicleStatus)
let dict = Dictionary(uniqueKeysWithValues: vehicleStatus.map{ ($0["key"]!, $0["value"]! ) })
print(dict)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.