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

如何安全访问含动态键的嵌套Map 可选链访问嵌套属性的正确写法

嵌套动态键Map的安全访问正确写法

你之前的写法错误是因为可选链访问动态属性时缺少了.符号,正确的可选链动态属性访问语法为?.[动态键],对应你的场景正确写法如下:

token.metaData = newMetadata["721"]?.[this.account.policyId]?.[token.assetName];

语法说明

  • 可选链运算符?.会先判断左侧的对象是否为null/undefined,如果是就直接返回undefined终止后续属性访问,不会抛出运行时错误
  • 当使用方括号访问动态键时,必须把?.放在方括号前面,单独写?[属于不合法语法,所以你之前的代码会报错

旧环境兼容方案

如果你的运行环境不支持ES2020的可选链特性,可以使用逻辑与&&做短路判断实现同等效果:

token.metaData = newMetadata["721"] 
  && newMetadata["721"][this.account.policyId] 
  && newMetadata["721"][this.account.policyId][token.assetName];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 00:45:04