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

如何通过变量值拼接变量名获取对应JavaScript变量的值?

实现思路

你原来的写法是将字符串进行拼接,最终得到的是"costOfApples1"这类字符串值,而非对应变量的实际存储数值,因此无法达到预期效果。这里给出两种可行的实现方案,首推对象映射方案,逻辑清晰且兼容性高。


方案1:对象映射(推荐)

将不同购买数量对应的价格存储在对象中,通过键名直接匹配取值,不需要依赖变量作用域,代码可维护性更高:

// 定义购买数量与对应价格的映射关系
const costMap = {
  1: 2,
  2: 5,
  3: 9
}
// prompt返回值为字符串类型,需转为数字
const howManyApples = Number(prompt("How many packets of apples do you want?"))
const costOfApples = costMap[howManyApples]

// 可选:增加输入合法性校验
if (!costOfApples) {
  alert("请输入1、2、3范围内的有效数值")
}

方案2:动态读取变量(不推荐)

如果你必须保留原来的costOfApples1/2/3独立变量定义,且这些变量定义在全局作用域下,可以通过window对象读取:

costOfApples1 = 2
costOfApples2 = 5
costOfApples3 = 9
const howManyApples = Number(prompt("How many packets of apples do you want?"))
// 从全局作用域读取对应变量的值
const costOfApples = window[`costOfApples${howManyApples}`]

注意:该方案仅在全局作用域下生效,如果变量定义在函数等局部作用域中会读取失败,不建议在生产环境使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:27:03