Tengo un Article de interfaz que contiene un campo con una matriz de Article . Ahora tengo una clase similar que debería contener los mismos datos y referencias. Mi objetivo ahora es crear un objeto para cada Article y sus referencias.
interface Article{ title:string; sections:Array<Article>; } class ArticleClass{ constructor(article:Article) { buildRefs(this, article); } sections:Array<ArticleClass>; buildRefs(parent: ArticleClass, data: Article): void { data.sections.forEach((s) => { const nextParent = new ArticleClass(s); this.buildRefs(nextParent, s); parent.sections.push(nextParent); }); } } // Example const articleData = { title:"Main Article", sections:[ {title: "1.1", sections:[]}, {title: "1.2", sections:[{title: "1.2.1", sections:[]},{title: "1.2.2", sections:[]},]}, {title: "1.3", sections:[]},, ]; const mainArticle = new ArticleClass(articleData); } En el constructor, creo recursivamente todos los objetos y guardo las referencias del nivel actual en la matriz de sections .
Sin embargo, cuando ejecuto esto, por alguna razón, los artículos 1.2.1 y 1.2.2 están duplicados. Sin embargo, todo está en el lugar correcto, solo esos dos están duplicados.