Javascript 如何使用解构和赋值语法创建具有不同键名的对象的不可变副本

Javascript 如何使用解构和赋值语法创建具有不同键名的对象的不可变副本,javascript,ecmascript-6,Javascript,Ecmascript 6,我使用解构和赋值语法来创建具有不同键名的对象的副本 const { currHash: password, lastLog: lastLoginDate, userID: userName, } = oldObj; const newObj = { password, lastLoginDate, userName, }; 我知道有很多其他方法可以获得相同的结果、函数、迭代等。但我想知道是否有可能在一个步骤中实现这一点?为什么不将其放在新的对象

我使用解构和赋值语法来创建具有不同键名的对象的副本

const {
    currHash: password,
    lastLog: lastLoginDate,
    userID: userName,
} = oldObj;

const newObj = {
    password,
    lastLoginDate,
    userName,
};

我知道有很多其他方法可以获得相同的结果、函数、迭代等。但我想知道是否有可能在一个步骤中实现这一点?

为什么不将其放在新的对象文本中
newObj={password:oldObj.password}
您也可以使用逗号而不是两个单独的语句-但是,是的,我在这里避免完全解构。解构用于将对象或数组元素提取到单独的变量中,而不是用于创建新对象。如果您想复制对象,但重命名属性,我建议您定义一个函数来执行此操作,然后您可以执行
const newObj=rename_props(oldObj,{currHash:password,lastLog:lastloginandate,userID:userName,})