Всем привет, есть подобие дерева которое состоит из массива с объектами, объекты так же имеют свои массивы с объектами.
Так же они могут заполняться из того что есть ниже(поглащать то что идет после них):
addIfQuestion(questionId, listQuestion = this.questionList) {
let self = this;
listQuestion.forEach(function (question, index) {
if ( questionId === question.id ) {
let copySplice = listQuestion.splice(index + 1);
question.answer.forEach(function (answer, i) {
answer.children = copySplice.slice();
answer.checked = i === 0;
});
} else {
if (question.ifQ) {
question.answer.forEach(function (answer) {
self.addIfQuestion(questionId, answer.children)
});
}
}
});
}
slice копирует значение и все вроде хорошо, но при удалении в одном месте элемент массива, он удаляется во всех
removeQuestion(questionId, listQuestion = this.questionList) {
let self = this;
listQuestion.forEach(function (question, index) {
if ( question.id === questionId ) {
listQuestion.splice(index, 1);
}
else if (question.ifQ) self.removeQuestion(questionId, question.answer.find(x => x.checked === true).children);
});
}
По идеи он должен удалять только объект в актином пути дерева, при тесте удаление происходит один раз, но удаляется обьекты в других ветках.
P.S: Как можно проверить нет ли ссылки на объект/массив вместо его копии?