在我看来,这是实现你所寻求的最简单的方法:
let { prop1, prop2, prop3 } = someObject;
let data = { prop1, prop2, prop3 };
基本上,将对象解构为变量,然后使用初始化器简写来创建一个新对象。没有必要使用
Object.assign
。
我认为这是最易读的方式。你可以从
someObject
中选择你想要的确切属性。如果你有一个现有的对象,只想将属性合并到其中,可以这样做:
let { prop1, prop2, prop3 } = someObject;
let data = Object.assign(otherObject, { prop1, prop2, prop3 });
Object.assign(otherObject, { prop1, prop2, prop3 });
另一种写法,可以说更简洁的方式是:
let { prop1, prop2, prop3 } = someObject;
let newObject = { prop1, prop2, prop3 };
Object.assign(otherObject, newObject);
我经常使用这个来进行
POST请求,只需要一些离散数据。但是,我同意应该有一个一行代码来完成这个任务。
P.S.:
我最近学到了,在第一步中可以使用超级解构来从复杂对象中提取嵌套值!例如...
let { prop1,
prop2: { somethingDeeper },
prop3: {
nested1: {
nested2
}
} = someObject;
let data = { prop1, somethingDeeper, nested2 };
此外,当创建一个新对象时,你可以使用
扩展运算符而不是Object.assign。
const { prop1, prop2, prop3 } = someObject;
let finalObject = {...otherObject, prop1, prop2, prop3 };
或者...
const { prop1, prop2, prop3 } = someObject;
const intermediateObject = { prop1, prop2, prop3 };
const finalObject = {...otherObject, ...intermediateObject };
Object.assign(oof, foo)
这个方法。 - elclanrsObject.assign
的两行解决方案。 - Zfalen