Как реалзиовать поиск в массиве объектов?

Здравствуйте, уважаемые Тостеровцы!
Помогите реализовать поиск по массиву связанных объектов.
Необходимо добавить в новый массив только те объекты, которые связаны как currentObj.id === nextObj.parentID
Пример JSON:
"data":
    [
      {
        "id": 111,
        "name": "Петров",
        "parentID": -1
      },
      {
        "id": 222,
        "name": "Алферов",
        "parentID":  111
      },
      {
        "id": 333,
        "name": "Агапов",
        "parentID":  222
      },
      {
        "id": 8,
        "name": "Грацкий",
        "parentID": -1
      },
      {
        "id": 2,
        "name": "Иванов",
        "parentID": 8
      },
      {
        "id": 4,
        "name": "Адаменко",
        "parentID": 2
      },
      {
        "id": 7,
        "name": "Ларин",
        "parentID": 4
      }
  ]


ps с деревьями вариант не подходит.
Спасибо!
  • Вопрос задан
  • 256 просмотров
Решения вопроса 2
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
https://jsfiddle.net/e0kp676b/
spoiler
var data = [
      {
        "id": 111,
        "name": "Петров",
        "parentID": -1
      },
      {
        "id": 222,
        "name": "Алферов",
        "parentID":  111
      },
      {
        "id": 333,
        "name": "Агапов",
        "parentID":  222
      },
      {
        "id": 8,
        "name": "Грацкий",
        "parentID": -1
      },
      {
        "id": 2,
        "name": "Иванов",
        "parentID": 8
      },
      {
        "id": 4,
        "name": "Адаменко",
        "parentID": 2
      },
      {
        "id": 7,
        "name": "Ларин",
        "parentID": 4
      }
  ]
  
  console.log(data.filter(function(o, i, data){
  	return i+1 < data.length && o.id == data[i+1].parentID;
  }))

Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Ahen
@Ahen
Универсальный дилетант
forEach + RegExp?
Ответ написан
Комментировать
@challenger1401
На больших данных тяжело будет работать..
Не лучше ли сформировать json с чилдренами?
[
{
"id": 111,
"name": "Петров",
"parentID": -1,
"children": [
{
"id": 222,
"name": "Алферов",
"parentID": 111,
"children": [
{
"id": 222,
"name": "Алферов",
"parentID": 111
}
]
}
]
}
]
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы