Javascript ES6解构未返回正确的结果
我试图用相同的属性名分解两个对象,但只观察到第一个集合的名称Javascript ES6解构未返回正确的结果,javascript,ecmascript-6,javascript-objects,Javascript,Ecmascript 6,Javascript Objects,我试图用相同的属性名分解两个对象,但只观察到第一个集合的名称 let a, b, ({ a,b } = myObject1); ({ a,b } = myObject2); ie;console.log()中仅包含MyObject 1的值 有人知道如何从不同对象中解构同名属性吗?我不想手动分配每个变量 我试过了 let a, b, ({ a,b } = myObject1); ({ a : test1,b: test2 } = myObject2) console.log(
let a, b,
({ a,b } = myObject1);
({ a,b } = myObject2);
ie;console.log()中仅包含MyObject 1的值
有人知道如何从不同对象中解构同名属性吗?我不想手动分配每个变量
我试过了
let a, b,
({ a,b } = myObject1);
({ a : test1,b: test2 } = myObject2)
console.log(test1)
及
但是test1未定义为变量分配名称
let a, b,
({ a,b } = myObject1);
({ a: A,b:B } = myObject2);
为变量指定名称
let a, b,
({ a,b } = myObject1);
({ a: A,b:B } = myObject2);
将从两个对象创建变量a1、b1、a2、b2
将从两个对象中创建变量
a1、b1、a2、b2
。如果有更多具有相同结构的对象,则可以使用返回所需属性数组的函数
const getProps = ({ a, b }) => [a, b];
let [a, b] = getProps(myObject1),
[c, d] = getProps(myObject2);
如果有更多具有相同结构的对象,则可以使用返回所需属性数组的函数
const getProps = ({ a, b }) => [a, b];
let [a, b] = getProps(myObject1),
[c, d] = getProps(myObject2);
A未定义如问题中所述A未定义如问题a2未定义如果
myObject2
上没有A
属性,则a2
的值将未定义。a2未定义如果myObject2
上没有A
属性,则a2
的值将为未定义。这意味着myObject2
没有属性a
。至于你最初的问题:你怎么期望a
和b
在同一时间有两个不同的值?那是不可能的。变量的最后一次赋值总是成功的。未定义可能是因为您想在分号所在的位置加一个逗号。您还可以将let
放在第3行之前。这意味着myObject2
没有属性a
。至于你最初的问题:你怎么期望a
和b
在同一时间有两个不同的值?那是不可能的。变量的最后一次赋值总是成功的。未定义可能是因为您想在分号所在的位置加一个逗号。您还可以在第3行之前放置let
。