Array - zostaw tylko te elementy, ktorych ID sa w innej tablicy

0

Czesc. Trywialne pytanie, ale krew sie we mnie gotuje.
Mam array1 i array2.

array1 ma kilka obiektow, kazdy z nich wyglada w ten sposob:

{
    "id": "x001",
    "employee": {
        "empId": "001",
        "name": "Szczepan"
    },
    "data": 123,
    "moredata": "123"
},
{
    "id": "x002",
    "employee": {
        "empId": "002",
        "name": "Maciek"
    },
    "data": 123,
    "moredata": "123"
}

array2 rowniez ma kilka obiektow, kazdy z nich wyglada w ten sposob

{
    "employeeId": "001",
    "position": "Keeper"
},
{
    "employeeId": "002",
    "position": "Cook"
}

Uzytkownik moze usunac osobe z Array1, wtedy wywolywana jest funkcja, ktora chce, zeby usuwala te osobe rowniez z Array2.
Array1.employee.empId jest takie samo jak array2.employeeId.

Nie umiem sobie poradzic z filtrowaniem.
Probuje zrobic to w ten sposob, aby filtrowac Array2 i zostawic te obiekty, gdzie employeeId jest rowne .employee.empId

Bede wdzieczny za pomoc :)

2

wg tego, co piszesz, to to powinno zadziałać:

arr2 = arr2.filter(item => item.employeeId != deletedId);

zakładając, że deletedId to id usuniętego obiektu.

Probuje zrobic to w ten sposob, aby filtrowac Array2 i zostawic te obiekty, gdzie employeeId jest rowne .employee.empId

A nie odwrotnie?

0

Czyli chcesz zrobić intersekcję po property?

Próbowałeś google'ać? Np: https://stackoverflow.com/questions/33356504/difference-and-intersection-of-two-arrays-containing-objects

1 użytkowników online, w tym zalogowanych: 0, gości: 1