javascript - 如何在其赋值表达式中重用目标的值?
问题描述
如何使这项工作:
(()=>{let a={}, b; console.log((b=a[`complex and long expression`])=9*b+1}))()
我想将目标的值重用到赋值表达式中。
我想避免写这么长:
(()=>{let a={}, b; console.log(a[`complex and long expression`]=9*a[`complex and long expression`]+1)})()
解决方案
您修改后的问题询问如何执行此操作:
(()=>{let a={}, b; console.log(a[`complex and long expression`]=9*a[`complex and long expression`]+1)})()
不重复自己。
唯一的方法是在 上重复属性访问a
,但没有理由重复complex and long expression
:
(()=>{let a={}, ex = `complex and long expression`; console.log(a[ex] = a[ex] * 9 + 1}))()
如果它只是* 9
,就像你原来的问题一样,你可以使用复合赋值:
我想避免写这么长:
(()=>{let a={}, b; console.log(a[`complex and long expression`]=9*a[`complex and long expression`]}))()
您可以使用*= 9
同时进行乘法和赋值。
(()=>{let a={}; console.log(a[`complex and long expression`]*=9}))()
// ---------------------------------------------------------^^
*=
获取左侧操作数的值,将其乘以右侧操作数,然后分配回左侧操作数。这些复合赋值运算符存在于大多数数学和按位运算中。
更多关于 MDN的信息。
推荐阅读
- reporting-services - 如何更改 SSRS 中的报表服务器版本
- solr - Solr 拼写检查 - 将正确的单词与建议的单词结合起来
- python - Pandas,字典列表,其中值是一个列表。将字典键转换为列名。将值列表中的每个元素转换为一行
- swiftui - 更新点击手势上的按钮文本
- python - Pylint:'无法导入'pathlib'(导入错误)'
- ios - 使用 Fastlane 发送 Codacy 代码覆盖率
- javascript - 404 无法使用 Express POST
- javascript - 我无法获取此 html 代码来显示我想要的内容
- javascript - 如何将数组中的特定图像调用为 Vanilla JavaScript 中的参数?
- spring-cloud-stream - SCDF Spring Cloud Stream 从 2.1.4 迁移到引导 2.2.4 版本中断了 kafka avro 流