[英]How to grab JavaScript destructured parameters independent of variable name?
[英]Javascript overwrite destructured let variable
是否可以覆盖用let
分配的多个变量
const somefunction = (data) => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data})
let {a, b, c, d} = somefunction(3)
现在,在使用不同的参数调用 someFunction 之后,如何在一个语句中覆盖 {a, b, c, d} ?
const somefunction = (data) => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data})
let {a, b, c, d} = somefunction(3)
{a, b, c, d} = somefunction(5)
这似乎可行,但我更漂亮的会删除前导分号(+语法很疯狂)
const somefunction = (data) => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data})
let {a, b, c, d} = somefunction(3)
;({a, b, c, d} = somefunction(5))
还有其他方法吗?
您需要将 {} in () 包装在没有用于分组语句的括号的箭头 function 中:
const somefunction = data => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data}); const {a,b,c,d} = somefunction(3) console.log(a,b,c,d)
或者使用 {} 并返回
const somefunction = data => { return {a:1+data, b:2-data, c: 2*data, d: 3+1*data} }; const {a,b,c,d} = somefunction(3) console.log(a,b,c,d)
使用 let 覆盖:
const somefunction = data => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data}); let {a,b,c,d} = somefunction(3); console.log(a,b,c,d); ({a,b,c,d} = somefunction(5)); console.log(a,b,c,d);
使用 var 覆盖(我不会;))
const somefunction = data => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data}); var {a,b,c,d} = somefunction(3); console.log(a,b,c,d); var {a,b,c,d} = somefunction(5); console.log(a,b,c,d);
这很难看,但您可以使用var
而不是let
。
const somefunction = (data) => {return {a:1+data, b:2-data, c: 2*data, d: 3+1*data}} var {a, b, c, d} = somefunction(3) console.log(a,b,c,d) var {a, b, c, d} = somefunction(4) console.log(a,b,c,d)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.