使用ES6解构分配语法重新分配变量

时间:2019-09-14 21:35:21

标签: javascript ecmascript-6

假设我有两个包含相同键但值不同的对象,并且我在第一个对象上使用了一个解构分配:

const obj1 = {a:1, b:2, c:3}
const obj2 = {a:4, b:5, c:6}
let {a, b, c} = obj1

如果稍后(例如,根据某些条件,例如值是否为假),我将重新分配abc,我发现我必须这样做:

a = obj2.a
b = obj2.b
c = obj2.c

由于以下两项都给出了SyntaxError

{a, b, c} = obj2
let {a, b, c} = obj2

是否可以使用与最初使用的语法相同的语法来重新分配这些变量(使用单线而不是单个地重新分配每个变量)?如果是这样,那我该怎么办?

1 个答案:

答案 0 :(得分:3)

您可以将第一个选项用括号括起来:({a, b, c} = obj2);

const obj1 = {a:1, b:2, c:3}
const obj2 = {a:4, b:5, c:6}
let {a, b, c} = obj1;

console.log(a);

({a, b, c} = obj2);

console.log(a);