JavaScript中如何将变量内容作为对象属性名传入saveData函数
解决方案
使用ES6的计算属性名语法即可实现需求,只需要把作为属性名的变量用方括号[]包裹:
// 仅需要修改传入saveData的对象写法,其他代码无需改动 saveData({ [key]: value });
原写法问题说明
你原先使用的{ key: value }是传统对象字面量写法,这里的key会被默认识别为字符串类型的固定属性名,不会解析为对应变量的值。
在属性名外侧包裹方括号后,JS引擎会先运算方括号内的表达式,再将运算结果作为最终的对象属性名,就能正常读取key变量的实际值作为属性名使用。
修改后代码运行时,saveData接收到的参数会依次为{ "0": {name: "John", lastname: "Doe"} }、{ "1": {name: "John2", lastname: "Doe2"} },符合预期要求。
内容的提问来源于stack exchange,提问作者Gonzalo
相关产品推荐
相关产品推荐

