@glebpolozhii

Как правильно выводить объект?

Есть вот такой массив объектов
[{
    Data: "1995-11-12T00:00:00"
    id: 1
    KodPodrazdeleniya: null
    Nomer: "111111"
    Seriya: "1111"
    Vid: {id: 6, name: "Паспорт гражданина РФ"}
    Vydan: "ОВД"
},
{
    Data: "1995-11-12T00:00:00"
    id: 2
    KodPodrazdeleniya: null
    Nomer: "111111"
    Seriya: "1111"
    Vid: {id: 13, name: "Водительское удостоверение гражданина РФ"}
    Vydan: "ОВД"
},
{
    Data: "1995-11-12T00:00:00"
    id: 3
    KodPodrazdeleniya: null
    Nomer: "111111"
    Seriya: "1111"
    Vid: {id: 15, name: "Другой документ"}
    Vydan: "ОВД"
},
{
    Data: "1995-11-12T00:00:00"
    id: 4
    KodPodrazdeleniya: null
    Nomer: "111111"
    Seriya: "1111"
    Vid: {id: 17, name: "Другой документ2"}
    Vydan: "ОВД"
}]

И массив id-шников типов документов
const arrTypeId = [PASSPORT_TYPE_ID, VU_TYPE_ID, ZAGRAN_TYPE_ID, IN_PASSPORT_TYPE_ID];

Мне нужно проверить есть ли в массиве объект с паспортом и если есть, то вывести его.
Если нет, то вывести объект с ВУ, если его нет, то след объект.

Никак не могу понять, как мне сделать проверку эту.

Вот я получаю vid.id
const vidId = person.documents.find(u => get(u, 'Vid.id')

А вот как дальше сравнить его с arrTypeId?
То есть если
vid.id == PASSPORT_TYPE_ID // вывести объект с паспортом
,
если vid.id == VU_TYPE_ID // вывести объект с ВУ

Если vid.id не совпадает ни с одним элементом массива, то выводить любой объект.
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
@StockholmSyndrome
const result = arrTypeId.reduce((acc, curr) => {
  return acc || person.documents.find(({Vid: {id}}) => curr === id);
}, null) || person.documents[0];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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