我在我的角度应用中的以下接口:返回数组不给定对象
interface Reservation {
id: string;
from: Date;
to: Date;
}
interface Bedroom {
id: string;
reservations: Array <Reservation> ;
}
interface House {
id: string;
bedrooms: Array <Bedroom>;
}
在某些时候,我从House
的Array
在S一定Bedroom
内删除从Reservation
并返回整个的副本House
Array
只有没有删除Reservation
项目。
我不能改变现有的Array
House
s。我应该怎么做?
这个问题似乎是不言自明的。进行深层复制,遍历它并删除属性。这种方法你有问题吗?你尝试了什么? – estus
所以我实际上想避免迭代每个项目的性能原因。我想知道我可以使用'JSON.parse(JSON.stringify(房屋))'然后实际上去“采摘?”保留对象从结果对象中返回。 – Sammy
'JSON.parse(JSON.stringify ...'几乎不会对性能有好处,在深度复制实现中您不会看到它,您可以深度复制并从中删除属性,或者可以省略属性手工复制数组并检查是否可以比_,cloneDeep等现有解决方案更好地进行深度复制。无法避免迭代,因为数组处理无法迭代完成, – estus