Osm*_*hid 5 javascript clone object
从具有特定属性(而不是全部)的另一个对象克隆一个对象的优化方法是什么?
如下所示,我们可以通过对象的投影来获取值:
let tempObject = {
prop1 : 'something',
prop2 : 'something' ,
other : 'others'
};
//then
let { prop1, prop2} = tempObject;
Run Code Online (Sandbox Code Playgroud)
同样,我想从另一个对象克隆一些属性,例如
let oldObject = {
p1 : 'something',
p2 : 'somethig',
p3 : 'something'
}
Run Code Online (Sandbox Code Playgroud)
想要从上面制作另一个oldObject仅具有p1 and p2这两个属性的对象。预计newObject将会{p1 : 'something', p2 : 'somethig'}。
我知道有很多方法可以做到这一点,但我想通过解释了解优化方法。
我会保持简单:
let newObject = {
p1: oldObject.p1,
p2: oldObject.p2
};
Run Code Online (Sandbox Code Playgroud)
这也将非常非常快,正如您所评论的,您正在考虑性能方面。
您可以使用循环使其复杂化:
let newObject = {};
for (const name of ["p1", "p2"]) {
newObject[name] = oldObject[name];
}
Run Code Online (Sandbox Code Playgroud)
或者使用属性休息(ES2018,在现代浏览器中,并且长期以来受到转译器的支持),您可以复制除您命名的之外的所有内容:
let {p3, ...newObject} = oldObject;
Run Code Online (Sandbox Code Playgroud)
但在大多数情况下我会保持简单。
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |