OlegOleg1980
@OlegOleg1980
программист

Как удалить из плоского списка сам элемент и связанные с ним элементы наиболее оптимально?

Добрй день!
Как ниболее оптимально по производительности удалить из плоского списка элемент и связанные "дочерние" элементы?
let list = [
{id:1, pid:0},
{id:2, pid:0},
{id:3, pid:2},
{id:4, pid:2},
{id:5, pid:3},
{id:6, pid:5},
];

Допустим, нужно удалить элемент id=2, а с ним все связанные: 3,4,5,6
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
const list = [
  {id:1, pid:0},
  {id:2, pid:0},
  {id:3, pid:2},
  {id:4, pid:2},
  {id:5, pid:3},
  {id:6, pid:5},
];

function removeById(id) {
  const index = list.findIndex(item => item.id === id);

  if (index === -1) {
    return;
  }

  list.splice(index, 1);

  const items = list.filter(item => item.pid === id);

  items.forEach(item => removeById(item.id));
}

removeById(id);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы