检查angular 7中递归对象的属性
我有一个像下面stackblitz这样的对象,我想检查一下键是否是Date。然后我再加上3天。我这样做是为了不完全递归对象。但是,当对象是递归的时,我不能这样做。我怎样才能做到这一点性能对我来说很重要,因为在我的现实生活场景中,我的对象非常大和复杂。检查angular 7中递归对象的属性,angular,typescript,angular7,Angular,Typescript,Angular7,我有一个像下面stackblitz这样的对象,我想检查一下键是否是Date。然后我再加上3天。我这样做是为了不完全递归对象。但是,当对象是递归的时,我不能这样做。我怎样才能做到这一点性能对我来说很重要,因为在我的现实生活场景中,我的对象非常大和复杂。 当发现某个属性是对象时,可以递归调用convert: convert(obj) { for (let property in obj) { if (obj.hasOwnProperty(property)) { if (o
当发现某个属性是对象时,可以递归调用
convert
:
convert(obj) {
for (let property in obj) {
if (obj.hasOwnProperty(property)) {
if (obj[property] instanceof Date) {
obj[property].setDate(obj[property].getDate() + 3);
} else if (obj[property] instanceof Object) {
this.convert(obj[property]); // Recursive call
}
}
}
}
请参见演示。您必须遍历整个对象,为此您需要使用递归。或者使用BFS,DFS traversalI尝试了递归,但是,我没有实现@AmitIf如果你的幸运是基于一些领域知识,那么你可以加快这个过程。e、 g从深度/级别3开始,就不会有更多的日期了。或者,例如,在1级中,约会次数永远不会超过x次。谢谢@jcuypers和Amit。ConnorsFan的答案正是我想要的。非常感谢@ConnorsFan。这就是我要找的。
convert(obj) {
for (let property in obj) {
if (obj.hasOwnProperty(property)) {
if (obj[property] instanceof Date) {
obj[property].setDate(obj[property].getDate() + 3);
} else if (obj[property] instanceof Object) {
this.convert(obj[property]); // Recursive call
}
}
}
}