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

question-closed javascript - tablica dynamiczna

0 głosów
70 wizyt
pytanie zadane 4 września w JavaScript, jQuery, AJAX przez DODO Obywatel (1,790 p.)
zamknięte 5 września przez DODO

Witam.

W pliku javascript  mam zadeklarowaną tablicę

var allEnemies = [];

i w trakcie kodu używam

allEnemies.push(e);

kilka razy

następnie chcę wykonać działanie na każdym elemencie tablicy więc robię pętlę:

	for(i=0; i<allEnemies.lenght; i++){
		console.log(allEnemies[i])
	}

ale niestety nic się nie wypisuje. Postanawiam zobaczyć ile wynosi allEnemies.lenght i okazuje się że wynosi 'undefined'

 

Co robię źle?

komentarz zamknięcia: Problem rozwiązany :)

2 odpowiedzi

+2 głosów
odpowiedź 4 września przez Comandeer Mentor (368,990 p.)
wybrane 4 września przez DODO
 
Najlepsza

length, nie lenght. Poza tym polecam forEach.

PS zmienna i MUSI być zadeklarowana przez var.

komentarz 4 września przez DODO Obywatel (1,790 p.)
dzięki wielkie!
0 głosów
odpowiedź 4 września przez ProgramistaStepek Dyskutant (9,060 p.)
Prawdopodobnie masz błąd gdzieś przy dodawaniu elementu do tablicy allEnemies.
komentarz 4 września przez DODO Obywatel (1,790 p.)
for(x=0; x<mapSizeX; x++){
	for(y=0; y<mapSizeY; y++){
		if(mapTiles[x][y]==99){
			var player = new Player(x*60+31,y*60+31);
		}
		
		else if(mapTiles[x][y]==98){
			e = new Enemy(x*60+31,y*60+31)
			allEnemies.push(e);
		}
	}
}

 

1
komentarz 4 września przez ProgramistaStepek Dyskutant (9,060 p.)
if(mapTiles[x][y]==98)

Czy mógłbyś wytłumaczyć co się tu dzieje? Dlaczego porównujesz akurat do 98? Co ta liczba znaczy w twoim programie? TIP: Zamiast używać magic numbers lepiej utwórz zmienną o konkretnej nazwie.

komentarz 4 września przez DODO Obywatel (1,790 p.)
var mapTiles = [[1,  1,  1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1,  1,  1,],
				[1,  1,  1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1,  1,  1,],
				[1,  1,  1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1,  1,  1,],
				[1,  1,  1,  98, 1,  1,  0,  1,  0,  1,  1,  98, 1,  1,  1,],
				[1,  1,  1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1,  1,  1,],
				[1,  1,  1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1,  1,  1,],
				[1,  1,  1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1,  1,  1,],
				[1,  1,  1,  98, 1,  1,  0,  1,  0,  1,  1,  98, 1,  1,  1,],
				[1,  1,  1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1,  1,  1,],
				[1,  1,  1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1,  1,  1,],
				[1,  99, 1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1,  1,  1,],
				[1,  1,  1,  98, 1,  1,  0,  1,  0,  1,  1,  98, 1,  1,  1,],
				[1,  1,  1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1,  1,  1,],
				[1,  1,  1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1,  1,  1,],
				];

To bloczki mapy

1 - trawa, 0 - ściana, 99 - player, 98 - monster/enemy

2
komentarz 4 września przez ProgramistaStepek Dyskutant (9,060 p.)

Zatem użyj stałych. Np.

const MONSTER = 98

Dużo łatwiej zrozumieć taki kod:

if(maptiles[x][y] === MONSTER)

To taka mała porada na przyszłość :)

komentarz 5 września przez DODO Obywatel (1,790 p.)
Dzięki :)
komentarz 13 września przez james88 Nowicjusz (100 p.)

Pamiętaj, aby chronić kod źródłowy JavaScript. Możesz użyć tego narzędzia: javascript obfuscator laugh
 

komentarz 13 września przez DODO Obywatel (1,790 p.)
zapamiętam :)

Podobne pytania

0 głosów
2 odpowiedzi 155 wizyt
+1 głos
6 odpowiedzi 163 wizyt
pytanie zadane 27 lipca 2016 w C i C++ przez Kasztan Dyskutant (8,170 p.)
0 głosów
2 odpowiedzi 187 wizyt
pytanie zadane 5 czerwca 2016 w C i C++ przez Avernis Nałogowiec (26,810 p.)

39,719 zapytań

78,161 odpowiedzi

153,596 komentarzy

18,779 pasjonatów

Przeglądających: 175
Pasjonatów: 12 Gości: 163

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...