Nodejs - манипулирующие свойства при деструкции - PullRequest
2 голосов
/ 06 января 2020

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

let employee =  {
   name: 'John Doe',
   birthday: '1980/01/01', // yyyy/MM/dd format
   department: 'R&D'
}

const { name, birthday, department } = employee

console.log(`${name} is working under ${department} and their birthday is on ${birthday}.`)

Допустим, я хочу изменить это, чтобы показать их возраст, а не их день рождения, у меня есть метод, который вычисляет, сколько им лет, который называется calcAge .

Я ожидаю, что код будет вращаться вокруг (или эквивалентно):

let employee =  {
   name: 'John Doe',
   birthday: '1980/01/01', // yyyy/MM/dd format
   department: 'R&D'
}

// Option 1: Current state:
const { name, birthday , department } = employee
const age = calcAge(birthday)

// Option 2: Required state:
// const { name, age: calcAge(birthday), department } = employee
// Note this:    ^^^^^^^^^^^^^^^^^^^^^^

console.log(`${name} is working under ${department} and they are ${age} years old.`)

Надеюсь, что это имеет смысл, если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь спрашивать.

1 Ответ

1 голос
/ 06 января 2020

К сожалению, невозможно манипулировать данными, пока вы разрушаете объект. Единственная цель деструктуризации присваивания состоит в том, чтобы иметь возможность присваивать значения, а не манипулировать ими.

Кроме того, манипулирование данными во время деструктуризации присваивания может привести к путанице и затрудняет чтение.

...