Разрушение ES6 не возвращает правильный результат - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь деструктурировать два объекта с одинаковыми именами свойств, но наблюдаются только имена первого набора.

let a, b,
 ({ a,b } = myObject1);
({ a,b } = myObject2);

т.е. только console для myObject1 находятся в console.log ()

Кто-нибудь знает, как деструктурировать свойства одного и того же имени из разных объектов? Я не хочу назначать каждую переменную вручную.

Я пытался

let a, b,
     ({ a,b } = myObject1);
    ({ a : test1,b: test2 } = myObject2)
console.log(test1)

и

  let a, b,
         { a,b } = myObject1;
         { a : test1,b: test2 } = myObject2
    console.log(test1)

Но test1 не определен

Ответы [ 3 ]

1 голос
/ 18 февраля 2020
let { a: a1, b: b1 }  = myObject1;
let { a: a2, b: b2 } = myObject2;

Создает переменные a1, b1, a2, b2 из ваших 2 объектов.

1 голос
/ 18 февраля 2020

Присвоение имени переменным.

let a, b,
 ({ a,b } = myObject1);
({ a: A,b:B } = myObject2);
0 голосов
/ 18 февраля 2020

Если у вас есть несколько объектов с одинаковой структурой, вы можете воспользоваться функцией, которая возвращает массив требуемых свойств.

const getProps = ({ a, b }) => [a, b];

let [a, b] = getProps(myObject1),
    [c, d] = getProps(myObject2);
...