Как в Angular искать по связанным объектам виде их url?

Есть 2 модели
Билеты
[
  {
    "id": 1,
    "client_url": "http://127.0.0.1:8000/api/v1/clients/1/",
    "url": "http://127.0.0.1:8000/api/v1/tickets/1/"
  },
  {
    "id": 2,
    "client_url": "http://127.0.0.1:8000/api/v1/clients/2/",
    "url": "http://127.0.0.1:8000/api/v1/tickets/2/"
  },
  {
    "id": 3,
    "client_url": "http://127.0.0.1:8000/api/v1/clients/2/",
    "url": "http://127.0.0.1:8000/api/v1/tickets/3/"
  }
]

Клиенты
[
  {
    "id": 1,
    "full_name": "Петров Иван Сергеевич",
    "birthdate": "1992-04-22",
    "url": "http://127.0.0.1:8000/api/v1/clients/1/"
  },
  {
    "id": 1,
    "full_name": "Иванов Иван Иванович",
    "birthdate": "1992-04-21",
    "url": "http://127.0.0.1:8000/api/v1/clients/2/"
  }
]

Итак надо найти все билеты принадлежащие клиентам у которых в full_name есть "Петров".
Поделитесь как лучше это сделать? Может уже есть готовые решения.
Спасибо всем кто откликнулся!!!
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
var clientUrls = _(clients).filter(function(i){
return i.full_name.indexOf('Петров')>=0;
})
.map(function(i){
return i.url;
}).value();
var myTickets = _.filter(tickets, function(t){
return _.some(clientUrls, function(i){return i===t.client_url;});
});

документация по lodash, в качестве оптимизации clientUrls можно хранить не массивом а объектов, проверка по ключу будет быстрее.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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