JS:将一个对象解构为另一个具有重命名属性的对象

JS: Destructure an object into another with renamed properties

是否可以在 JS 中做类似下面的事情?

const obj = { a: 1, b: 2, c: 3 };

const copyObj = {...{ a: x, b: y, c: z } = obj };

我知道我可以做到:

const { a: x, b: y, c: z } = obj;

const copyObj = { x, y, z };

但这不是我想要的。有什么建议吗?

您可以使用一个函数来获取想要的和重命名的属性。

const
    rename = ({ a: x, b: y, c: z }) => ({ x, y, z }),
    obj = { a: 1, b: 2, c: 3 },
    copyObj = rename(obj);

console.log(copyObj);

您可以使用 Immediately Invoked Function Expression

进行内联样式

const obj = { a: 1, b: 2, c: 3 }

const copyObj = { ...(({ a: x, b: y, c: z }) => ({ x, y, z }))(obj) }

console.log(copyObj)