有没有办法一行完成以下操作?
let person = {}
const { firstName, lastName } = getNames()
//or this
//const { firstName, lastName } = await getNames()
person.firstName = firstName
person.lastName = lastName
我经常在编码时这样做,并希望有一个捷径。我在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment上看不到任何提示。
我正在尝试类似下面的操作,但是它会覆盖对象中的其他属性。
let person = { age: 20 }
person = { ...getNames() }
我认为这也不适合与async / await函数配合使用,因为它们会返回承诺。
let person = { age: 20 }
person = { ...await getNames() }
答案 0 :(得分:1)
您可以为此使用Object.assign。例如。
let person = { firstName: 'John', lastName: 'Doe', age: 67, //etc... }
let newPerson = Object.assign(person, getNames())
console.log(newPerson)
// Expected output: `{ firstName: 'newFirstName', lastName: 'newLastName', age: 67, etc... }`
您可以在此处查看有关Object.assign的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
答案 1 :(得分:1)
您可能会尝试这样的事情:
({firstName: person.fistName, lastName: person.lastName} = getNames());
您需要预先将person
定义为对象。