繁体   English   中英

使用解构赋值交换 object 属性时出现 TypeError

[英]TypeError when swapping object properties with destructuring assignment

我正在尝试使用[] = []方法在 JavaScript 中交换两个 object 值,但是我的以下代码失败并显示错误"message": "Uncaught TypeError: Cannot set property '9' of undefined",

 let dataObj={"reg_price":2, "reg_price_alt":5, "ex":9} console.log("before: ", dataObj) [dataObj.reg_price, dataObj.ex] = [4, 5]; console.log("after: ", dataObj)

有一些我缺少的语法吗? 我不明白为什么这个简单的代码不起作用。

语法很好。 添加分号以防止自动分号插入认为您想要执行console.log(...)[...]而不是数组解构:

 let dataObj = {"reg_price":2, "reg_price_alt":5, "ex":9} console.log("before: ", dataObj); // <-- semicolon [dataObj.reg_price, dataObj.ex] = [4, 5] console.log("after: ", dataObj)

我会更进一步,并在每行后添加分号。 否则请注意购买者。 交换值的示例:

 const o = {a: 0, b: 1}; console.log(o); [oa, ob] = [ob, oa]; console.log(o);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM