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

JavaScript中如何通过动态键名获取SpEL Map的值

问题原因

你的代码无法正常取值有两个核心问题:

  • 你使用双引号包裹字符串,这种场景下${}是普通文本内容,不会触发JS的变量插值逻辑。你第一段代码能拿到值,是对应模板引擎在编译阶段做的静态替换,不是JavaScript运行时的原生行为。
  • 你动态拼接key的写法,最终只是生成了内容为${testMap['0']}的普通字符串,没有在JS运行时实际访问testMap的对应属性,自然无法拿到目标值。
正确实现方式

根据testMap的类型不同,动态取对应键值的写法分为两种:

当testMap为普通JavaScript对象时

直接使用方括号语法包裹动态键名即可完成取值,不要把取值逻辑拼接成字符串:

const status = '0';
// 直接读取属性值
const targetValue = testMap[status];
console.log(targetValue); // 输出 'some string'

// 如果需要在字符串中嵌入取值结果,使用反引号包裹模板字符串即可
console.log(`查询结果:${testMap[status]}`);

当testMap为ES6原生Map实例时

原生Map实例需要调用get()方法传入动态键名取值:

const status = '0';
// 调用Map原型上的get方法取值
const targetValue = testMap.get(status);
console.log(targetValue); // 输出 'some string'

// 模板字符串中嵌入写法
console.log(`查询结果:${testMap.get(status)}`);

注意:模板字符串必须使用反引号(`)包裹,使用单/双引号包裹时${}不会被解析为插值语法,只会被识别为普通文本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:57:19