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

AHKV1如何将关联数组中子对象的fullname值拼接为长字符串?

AHK V1 遍历关联数组提取指定属性并拼接字符串

原始关联数组定义

obj                     := {}
obj.kevin               :=  {}
obj.kevin.fullname      :=  "John Smith"
obj.kevin.age           :=  50

obj.hellen              :=  {}
obj.hellen.fullname     := "Hellen Smith"
obj.hellen.age          := 60

obj.tim                 :=  {}
obj.tim.fullname        := "Tim Smith"
obj.tim.age             := 30

需求

提取每个子对象的fullname属性值,拼接成连续字符串:

John SmithHellen SmithTim Smith

尝试的无效代码

最初尝试用数字索引循环,但关联数组不支持A_Index这类数字索引访问,仅支持键名索引,因此代码无法生效:

Loop,% obj
        str += obj[A_Index].fullname

ConsoleX(str) ; 无法得到目标结果

内置解决方案

方案1:使用for循环直接遍历

AHK V1支持用for循环遍历关联数组的键值对,直接获取每个子对象的fullname进行拼接:

str := ""
for key, subObj in obj
    str .= subObj.fullname

ConsoleX(str) ; 输出:John SmithHellen SmithTim Smith

方案2:通过ObjOwnKeys获取键数组后循环

用ObjOwnKeys函数获取关联数组的所有自有键,得到一个可数字索引的数组,再循环拼接:

str := ""
keys := ObjOwnKeys(obj)
Loop, % keys.Length()
{
    currentKey := keys[A_Index]
    str .= obj[currentKey].fullname
}

ConsoleX(str) ; 输出目标字符串

以上两种都是AHK V1内置的实现方式,无需额外依赖,可实现类似PowerShell中遍历对象属性的常用操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 05:55:08