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

question-closed Array - Obiekt wyświetla się prawidłowo a po dodaniu wartości zwraca undefined.

Object Storage Arubacloud
0 głosów
147 wizyt
pytanie zadane 31 maja 2020 w JavaScript przez Greeenone Pasjonat (16,100 p.)
zamknięte 31 maja 2020 przez ScriptyChris

Hej,

Mam pewien dziwny problem z Array'em. W template vue.js mam funkcje która oblicza różnicę pomiędzy dwiema wartościami oblicz(index, 'nazwa'). Odbieram to w methods. Problem pojawia się przy próbie wyciągnięcia array'u.

Sprawa wygląda tak:

requirements jest tablicą zawierającą obiekty. Do funkcji jest przesyłany indeks oraz nazwe elementu w formie stringu który ma być obliczony

this.requirements[index][name] --> Zwraca element z obiektu o podanym indexie. 
this.requirements[index+1] -> Prawidłowo zwraca kolejny obiekt 
this.requirements[index+1][name] -> Już nie działa

Nie wiem czemu index+1 bez elementu wyświetla się prawidłowo a po dodaniu elementu który chcę wyciągnąć z tablicy wywala mi "(index+1) is undefined"

Ktoś może wie w czym tkwi problem ?

komentarz zamknięcia: Problem rozwiązany

1 odpowiedź

+1 głos
odpowiedź 31 maja 2020 przez Tomek Sochacki Ekspert (227,510 p.)
Pokaż co siedzi w tej tablicy pod indeksem ktory Cie interesuje plus co siedzi w zmiennej name? Chyba, ze name to pole.obiektu, wtedy odwolaj sie po kropce lub podaj nazwe jako.string.
komentarz 31 maja 2020 przez Greeenone Pasjonat (16,100 p.)

https://codesandbox.io/s/epic-banzai-bdh2p?fontsize=14&hidenavigation=1&theme=dark&file=/src/App.vue

Kiedy używam samego [index+1], to prawidłowo wyświetla obiekt. W momencie kiedy chcę wyświetlić wartość dodając .value, konsola wywala błąd, że index+1 jest undefined

komentarz 31 maja 2020 przez Tomek Sochacki Ekspert (227,510 p.)
Na mobile nie lubię wchodzic na te sandboxy do kodu, daj tutaj info co wyswietla konsola pod tym indexem.
komentarz 31 maja 2020 przez ScriptyChris Mędrzec (190,190 p.)

Ta funkcja odpala się 2 razy. Za drugim razem index ma wartość 1, a więc [index + 1] próbuje odwołać się do elementu o indeksie 2, a takiego nie ma - stąd błąd.

komentarz 31 maja 2020 przez Greeenone Pasjonat (16,100 p.)
Ogólnie to tak:

requirements[index].name - Zwraca poprawnie nazwę znajdującą się w wybranym obieckie

requirements[index+1] - Zwraca poprawnie wybrany obiekt

requirements[index+1].name - Konsola daje error, że wartość [index+1] jest undefined. gdy usuwam .name, obiekt zwraca się poprawnie

Nie rozumiem, dlaczego odniesienie się do dane elementu powoduje, że index+1 staje się undefined.
komentarz 31 maja 2020 przez Greeenone Pasjonat (16,100 p.)
@JsHolic Właśnie też to sprawdzałem jako pierwsze i okazało się, że źle sprawdziłem.. Musiało coś mi umknąć (Dodałem slice które zapobiegało wygenerowaniu się ostatniego elementu)

Z serii błędy nad którymi spędziłem parę godzin przez niedopatrzenie / brak skupienia
komentarz 31 maja 2020 przez ScriptyChris Mędrzec (190,190 p.)
console.log(this.requirements[index+1]);

Pokazuje w konsoli:

> {__ob__: Observer}

> undefined 

Podobne pytania

0 głosów
0 odpowiedzi 151 wizyt
pytanie zadane 6 sierpnia 2020 w JavaScript przez rob Bywalec (2,440 p.)
0 głosów
1 odpowiedź 99 wizyt
pytanie zadane 18 grudnia 2021 w JavaScript przez MisticVoid Początkujący (490 p.)
+1 głos
3 odpowiedzi 417 wizyt
pytanie zadane 19 lipca 2020 w JavaScript przez kingkushlee Gaduła (3,960 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 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!

...