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

Usuwanie wartości w tablicy wielowymiarowej javascript

VPS Starter Arubacloud
0 głosów
131 wizyt
pytanie zadane 9 listopada 2019 w JavaScript przez mateusz.zajac Obywatel (1,460 p.)

Cześć, muszę usunąć pewne elementy z tablicy wielowymiarowej. Aktualnie kod działa poprawnie, ale nie wykonuje się dla ostatniej wartości. Rozumiem, że to przez fakt, że modyfikuję pętlę, na której działa for. Przykładowe wartości: ["3,4", "3,6", "7,6", "4,3", "4,7"]. Chcę usunąć 3 z nich. Dwie się usuwają, trzecia nie. Rozumiem czemu tak się dzieje. Nie rozumiem jak to zmienić, aby działało poprawnie :D Jakiś pomysł? 

 for (let el of possibleMoves) {
    let childKnot = document.getElementById(el).childNodes;
    if(document.getElementById(el).childElementCount!=0) 
    {
      if(childKnot.item(0).classList[2] == board[x][y].side) {
        let ourElementsPosition = possibleMoves.indexOf(document.getElementById(el).id);
        console.log(document.getElementById(el).id);
        possibleMoves.splice(ourElementsPosition,1);
      } 
    }
  }

Jeżeli wkleję tą samą pętle poniżej to działa wspaniale, ale jest to raczej kiepskie rozwiązanie :D 

1 odpowiedź

0 głosów
odpowiedź 9 listopada 2019 przez Tomek Sochacki Ekspert (227,490 p.)
A może podejdź inaczej do problemu i po prostu wyciągnij sobie np. do jakiej tablicy dane, które chcesz usunąć i zrób array intersection. Ewentualnie jeśli do dane w jakiś sposób obliczane to możesz użyć po prostu Array.prototype.filter i w ten sposób stworzyć nową tablicę pozbawioną wartości nie spełniających danego kryterium.
komentarz 9 listopada 2019 przez mateusz.zajac Obywatel (1,460 p.)
edycja 9 listopada 2019 przez mateusz.zajac
Pomysł dobry :) Zrobiłem coś takiego:

let nowa = array_intersect(possibleMoves, zablokowanePola);

console.log(nowa);

Niestety nie działa to. Żadnego błędu nie dostaję w konsoli, a na ekranie widzę, że przez tą linię, kod dalej się nie wykonuje. Why?

EDIT: array_intersect działa w PHP, a nie w js :) szukam dalej rozwiązania

Podobne pytania

0 głosów
1 odpowiedź 451 wizyt
0 głosów
1 odpowiedź 1,182 wizyt
pytanie zadane 7 stycznia 2019 w PHP przez niezalogowany
0 głosów
1 odpowiedź 915 wizyt
pytanie zadane 24 maja 2018 w Java przez Marius Nowicjusz (140 p.)

92,947 zapytań

141,899 odpowiedzi

321,118 komentarzy

62,283 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...