如何在iOS快捷指令中过滤数组?无需循环实现取值
iOS快捷指令高效过滤数组取指定值的方法
问题场景
给定如下JSON数组:
"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" } ]
需要在不使用「重复每个项目」遍历全部97个元素的前提下,快速获取DOOR_IS_ALL_DOORS_LOCKED对应的value值,避免繁琐耗时的遍历操作。
解决方案
完全可以实现,步骤如下:
- 先将
vehicleStatus对应的JSON数组解析为快捷指令支持的「列表」类型:如果是原始JSON字符串,用「从JSON获取值」操作转换。 - 添加「筛选数组」操作,把解析后的列表传入。
- 设置筛选条件:选择「字典的键」,指定键为
key,条件设为「等于」,输入目标键名DOOR_IS_ALL_DOORS_LOCKED。 - 筛选后得到仅含匹配项的列表(通常只有一个元素),接着用「获取列表中的项目」操作选择「第一个项目」。
- 最后用「获取字典值」操作,指定键为
value,即可直接拿到目标值。
这种方法利用快捷指令内置的筛选逻辑,无需手动遍历全部元素,效率比逐个判断高很多。
内容的提问来源于stack exchange,提问作者Maciek
相关产品推荐
相关产品推荐

