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

如何获取嵌套对象目标值?访问属性返回undefined问题排查

问题原因

你当前的访问路径缺失了中间层级"TAX VALUE INFORMATION",editedFields[section]对应的是包含"TAX VALUE INFORMATION"的对象,而不是直接包含"Improvement Value"的对象,所以直接用[key]访问会找不到对应属性,返回undefined。

解决方案

方案1:固定中间层级直接访问

如果"TAX VALUE INFORMATION"这个中间层是固定不变的,直接在访问路径中补上这一层即可:

const handleValues = (section: string, key: string, value: string | undefined) => {
    console.log(editedFields[section]?.["TAX VALUE INFORMATION"]?.[key]); // 输出 "$812,57"
}

方案2:动态遍历中间层(适用于中间层不固定的情况)

如果中间层的键名可能变化,无法硬编码,可以遍历section对应对象的所有子属性,查找包含目标key的子对象:

const handleValues = (section: string, key: string, value: string | undefined) => {
    const sectionData = editedFields[section];
    if (!sectionData) return;
    
    // 遍历所有中间子对象
    for (const middleKey of Object.keys(sectionData)) {
        const middleData = sectionData[middleKey];
        if (middleData && key in middleData) {
            console.log(middleData[key]); // 输出 "$812,57"
            break; // 找到后停止遍历
        }
    }
}

方案3:修改函数参数传入中间层键

如果可以调整handleValues的参数,直接传入中间层的键名,访问逻辑会更清晰:

// 新增middleKey参数,传入"TAX VALUE INFORMATION"
const handleValues = (section: string, middleKey: string, key: string, value: string | undefined) => {
    console.log(editedFields[section]?.[middleKey]?.[key]); // 输出 "$812,57"
}

内容的提问来源于stack exchange,提问作者Code The World

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 20:12:08