You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AppleScript中遍历复杂列表项?

AppleScript记录(Record)遍历解决方案

你定义的{BOB:{name:"Bob", place:"london"}, BILL:{name:"Bill", place:"paris"}}不是普通列表,而是AppleScript的记录(Record)——一种键值对关联集合,和无键的有序列表(如{"Bob", "Bill"})的访问规则不同,直接用列表的遍历方式会报错,因为记录不支持item索引访问。

以下是两种可行的遍历方式:

方式1:遍历记录的所有值

先提取记录的所有值组成列表,再用常规列表遍历方式处理:

set record1 to {BOB:{name:"Bob", place:"london"}, BILL:{name:"Bill", place:"paris"}}
set recordValues to values of record1
repeat with myItem in recordValues
    log myItem
end repeat

方式2:遍历记录的键并获取对应值

如果需要同时获取键和值,可以先提取所有键,再通过键访问对应的值:

set record1 to {BOB:{name:"Bob", place:"london"}, BILL:{name:"Bill", place:"paris"}}
set recordKeys to keys of record1
repeat with myKey in recordKeys
    set myItem to myKey of record1
    log "键:" & myKey & ",对应值:" & myItem
end repeat

补充说明

  • length of record1能返回2是因为AppleScript会将记录的键数量视为“长度”,但这只是兼容写法,本质上它不是列表,不能用item n访问元素。
  • 记录的键是标识符(如BOB、BILL),访问值时可以直接写BOB of record1,遍历键则能动态处理所有键值对。

内容的提问来源于stack exchange,提问作者Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 18:50:43