如何将预定义的const变量值作为对象属性名
使用预定义变量作为对象属性名的解决方案
当然可以实现!你现在的代码里直接写x: "15"的话,对象的属性名会是字符串"x",而不是变量x的值"age"。要让变量的值作为属性名,你需要用到ES6引入的计算属性名语法,把变量放在方括号[]里就行。
修正后的代码示例:
const x = "age"; let array = { name : "Tom", [x]: "15" // 这里用方括号包裹变量x }; console.log(array); // 输出: { name: 'Tom', age: '15' }
原理说明:
- 计算属性名允许你在对象字面量中,用表达式(比如变量)来动态生成属性名。
- 当你用
[x]的时候,JavaScript会先计算x的值(也就是"age"),然后把这个值作为属性名绑定到对象上。
额外小提示:
其实不止变量,任何合法的JavaScript表达式都可以放在方括号里,比如:
const prefix = "user"; let obj = { [`${prefix}_name`]: "Alice", [`${prefix}_age`]: 28 }; console.log(obj); // 输出: { user_name: 'Alice', user_age: 28 }
这样就能完美实现你想要的效果啦!
内容的提问来源于stack exchange,提问作者kzehrt
相关产品推荐
相关产品推荐

