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
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
yarkov
@yarkov Куратор тега JavaScript
https://github.com/yarkovaleksei/toster-extension
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);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
28 февр. 2020, в 16:33
450 руб./за проект
28 февр. 2020, в 16:23
20000 руб./за проект
28 февр. 2020, в 16:20
300 руб./за проект