Задать вопрос
xXRustamXx
@xXRustamXx

Как найти потомка по id?

Нужен item с 6 id, как можно его достать?
items = [
  {
    id: 1,
    children: [
      {
        id: 3,
        children: [
          id: 5,
          children: [
            {
              id: 6
            }
          ]
        ]
      },
      {
        id: 4
      }
    ]
  },
  {
    id: 2
  }
];
  • Вопрос задан
  • 145 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 2
Первый пример из гугла
var data = [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4, children: [{ id: 6 }, { id: 7, children: [{ id: 8 }, { id: 9 }] }] }, { id: 5 }];

function findById(data, id) {
    function iter(a) {
        if (a.id === id) {
            result = a;
            return true;
        }
        return Array.isArray(a.children) && a.children.some(iter);
    }

    var result;
    data.some(iter);
    return result
}

console.log(findById(data, 8));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В такой структуре только рекурсивным перебором.
Ответ написан
paulfcdd
@paulfcdd
PHP/Sf/WEB developer
нужно написать рекурсивную функцию
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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