• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Dlaczego wartość prymitywna wewnątrz obiektu jest samoczynnie zamieniana na fałsz?

Object Storage Arubacloud
+1 głos
128 wizyt
pytanie zadane 14 stycznia 2021 w JavaScript przez Artek Stary wyjadacz (11,800 p.)
zamknięte 15 stycznia 2021 przez ScriptyChris

Mamy taki kod :

getOptionsWithObjectProperties(options:Array<any>): Array<object>{
        let optionsWithKeys: Array<object> = [];

        options.forEach(option => {
            optionsWithKeys.push({value : option, 
            identifier : this.parseOptionValueToObjectProperty(option)});
        })
        console.log(optionsWithKeys);
        return optionsWithKeys;
    }

Funkcja parseOptionValueToObjectProperty zwraca stringa, wartość prymitywną, funkcja działa poprawnie i zwraca to czego potrzebuję. Wewnątrz foreach wartości są takie jakie oczekuję. Jednak po wyjściu z z forEach okazuje się, że w zwracanej tablicy mamy takie oto obiekty : 

{
idendifier : false,
value : "Jakiś tekst zgodny z tym co potrzebuję"
}

We wszystkich obiektach w tablicy właściwość identifier z jakiegoś powodu zostaje zamieniona na false, dlaczego?

komentarz zamknięcia: Problem rozwiązany - nieprawidłowe połączenie elementów w Vue
1
komentarz 14 stycznia 2021 przez Tomek Sochacki Ekspert (227,510 p.)
Pokaz implementację tej metody jeszcze.
komentarz 14 stycznia 2021 przez Artek Stary wyjadacz (11,800 p.)
parseOptionValueToObjectProperty(value):string{
        const str = value.toString();
        return `_${str.replace(' ','_').replaceAll('-','_')}`;
    }

 

komentarz 14 stycznia 2021 przez Tomek Sochacki Ekspert (227,510 p.)
Sprawdzałem sobie ten Twój kod w konsoli i jest ok np. dla wywołania "getOptionsWithObjectProperties(['abc', '123'])". Pokaż może nieco więcej kodu, te booleany to gdzie dostajesz, już w tym console.log wewnątrz getOptionsWithObjectProperties ? Jeśli tak to pokaż jeszcze jakie dajesz parametry wejściowe (options).
komentarz 14 stycznia 2021 przez Artek Stary wyjadacz (11,800 p.)

Dobra dodam więcej informacji.

Po pierwsze korzystam z vue.js to jest kod umieszczony w komponencie bazowanym na klasie.

Options jest tablicą zawierającą stringi - imiona i nazwiska.

Teraz zauważyłem, że gdy wyświetlam w konsoli wewnątrz forEach to wygląda dość standardowo - zgodnie z zapotrzebowaniem.

{value : "imie i nazwisko", identifier : '_imie_i_nazwisko'}

Ale po wyjściu z forEach w konsoli wyświetla się w taki sposób : 

{  identifier : (....),  value : (....)}

Kliknięcie w (....) to wywołanie gettera (po najechaniu kursorem wyświetla się informacja - invoke property getter). Po wywołaniu gettera dla właściwości identifier zawsze wyskakuje false, właściwość value jest w porządku.Czyli w forEach jest zwyczajnie, ale po wyjściu z forEach aby odczytać właściwość obiektu nagle trzeba uruchomić getter. Dlaczego?

1
komentarz 14 stycznia 2021 przez Tomek Sochacki Ekspert (227,510 p.)
a to options z jakim wywołujesz metodę to zwykła standardowa tablica stringów? dziwna sytuacja trochę... z vue nie pracowałem, ale nie podejrzewam aby framework w jakiś sposób robił coś z tablicami...
1
komentarz 14 stycznia 2021 przez Artek Stary wyjadacz (11,800 p.)
Dziękuję Ci za pomoc, problem rozwiązany - okazało się, że błąd nie leży w rozumieniu js'a tylko źle połączyłem pewne elementy w vue.
1
komentarz 14 stycznia 2021 przez Tomek Sochacki Ekspert (227,510 p.)
grunt że udało się naprawić problem :)

Podobne pytania

+1 głos
1 odpowiedź 263 wizyt
0 głosów
2 odpowiedzi 1,319 wizyt
pytanie zadane 15 lipca 2019 w JavaScript przez wsnofi Bywalec (2,680 p.)
0 głosów
1 odpowiedź 144 wizyt
pytanie zadane 27 maja 2020 w JavaScript przez boneoflive Użytkownik (930 p.)

92,555 zapytań

141,402 odpowiedzi

319,552 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...