JavaScript中如何获取循环变量的原始名称?
解决方案
直接通过值反推变量原始名称在JavaScript里行不通——当你把变量放进数组[var1, var2, var3]时,数组里只存储了变量的值,变量名的信息已经完全丢失。循环里的variable只是当前值的引用,根本不知道它来自哪个原始变量。
要同时拿到变量名和对应的值,有两种实用的方法:
方法一:用对象存储键值对(推荐)
利用ES6的对象简写语法,直接把变量名作为对象的键,变量值作为对应的值,再通过Object.entries()遍历键值对:
const var1 = 'hello'; const var2 = 123; const var3 = true; // 用对象存储变量名和对应值,键名自动匹配变量名 const variableMap = { var1, var2, var3 }; for (const [name, value] of Object.entries(variableMap)) { console.log("Value: " + value); console.log("Name: " + name); }
运行后会依次输出:
Value: hello Name: var1 Value: 123 Name: var2 Value: true Name: var3
方法二:手动构建包含名称和值的数组
如果你需要更灵活的结构,可以手动创建一个包含name和value属性的对象数组:
const var1 = 'hello'; const var2 = 123; const var3 = true; const variableList = [ { name: 'var1', value: var1 }, { name: 'var2', value: var2 }, { name: 'var3', value: var3 } ]; for (const item of variableList) { console.log("Value: " + item.value); console.log("Name: " + item.name); }
这两种方法的核心逻辑都是主动保存变量名与值的映射关系——毕竟JavaScript本身不会为值记录它来自哪个变量,只能靠我们手动留存这份关联信息。
内容的提问来源于stack exchange,提问作者julvanu
相关产品推荐
相关产品推荐

