簡體   English   中英

在 iOS 快捷方式中過濾數組 - 如何?

[英]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 條件設置一個變量,然后稍后使用該變量,但它冗長而冗長,無法滿足我的需要。

1). For循環

你的問題的第一個解決方案,你已經完成了。 也許您已經通過手動使用 for 循環完成了此操作。

所以第二個選項是



2). 系統迭代

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)
}

您可以通過以下方式更改數據管理



3). 字典

如果“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM