Witam,
wczoraj pytałem o pomoc z pewnym zadaniem, dzisiaj zmagam się z kolejnym i o ile początek napisałem już sam, tak mam pewien problem z dalszą częścią przez co ponownie potrzebuję nakierowania na rozwiązanie / podpowiedzi / bądź wytłumaczenia co i jak.
Zadanie dotyczy napisania funkcji, która przyjmuje 2 obiekty jako argumenty. Ma ona zwracać tablicę z nazwami własności obu obiektów, ale z wyłączeniem tych własności, które znajdują się w obu obiektach. Funkcja nie musi sprawdzać zagnieżdżonych obiektów, a wynikowa tablica powinna najpierw zawierać własności z pierwszego obiektu i dopiero po nich własności z drugiego. Ponadto, kolejność tych własności powinna zostać zachowana.
Np. podając jako argumenty funkcji: {x: 1, y: 1, z: 1}, {w: 2, x: 2, z: 2} zwracany wynik powinien wynosić: ['y','w']
Zrobić to chciałem jakoś tak, żeby funkcja pobierała wszystkie nazwy własności z obu obiektów i zapisywała je w jednej tablicy. Potem zostałoby już tylko usunąć elementy, których jest więcej niż jeden. Samo "pobranie" nazw własności i umieszczenie ich w tablicy napisałem tak:
var arr = Object.keys(a).concat( Object.keys(b) );
Problem mam jednak w tym, że nie wiem w jaki sposób usunąć te powtarzające się elementy jednocześnie zachowując taki porządek jak opisano w poleceniu (przez co wykluczyłem raczej użycie opcji sort). Próbowałem pisać jakieś pętle z użyciem .splice, .slice i kombinowałem z .filter, ale ciągle nie wychodziło i jako wynik otrzymywałem zupełnie inne rzeczy niż chciałem.
Byłby ktoś w stanie podpowiedzieć jak usunąć te powtarzające się elementy?
Z góry dziękuję za wszelkie odpowiedzi.