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

Rysowanie choinki/piramidy za pomocą pętli w js

Object Storage Arubacloud
0 głosów
5,617 wizyt
pytanie zadane 22 lutego 2018 w JavaScript przez Piotr50 Nowicjusz (240 p.)
Jak za pomocą pętli narysować choinkę/piramidę z gwiazdek w java script. Umiem narysować jeden wiersz gwiazdek lecz mam trudności z dodaniem kolejnych wierszy gwiazdek. Dodam, że dopiero zacząłem się uczyć java scriptu i jestem początkujący.

1 odpowiedź

+2 głosów
odpowiedź 22 lutego 2018 przez Tomek Sochacki Ekspert (227,510 p.)
wybrane 27 lutego 2018 przez Piotr50
 
Najlepsza

Co prawda generalnie to nie prosimy tutaj na forum o gotowca, ale ostatnio bawiłem się w pewnym projekcie takimi własnie problemami aby na ich przykładzie pokazać kilka różnych elementów języka, więc mogę tutaj dać Ci jeden z nich, właśnie z choinką:

const tree = (n) => {
	const result = [];
	for (let i = 1; i <= n; i += 1) {
		result[i] = '';
		for (let j = i; j < n; j++) {
			result[i] += ' ';
		}
        const max = (2 * i - 1);
		for (let j = 1; j <= max; j++) {
			result[i] += '*';
		}
	}
	return result.join('\n');
};

i teraz trochę testów:

tree(5);
"
    *
   ***
  *****
 *******
*********"

tree(3);
"
  *
 ***
*****"
tree(2);
"
 *
***"
tree(1);
"
*"
tree(0);
""

Generalnie nie jest to najlepsze z rozwiązań, ale aby je zrozumieć musisz podjąć temat tablic (array) w JS, temat pętli i poznać operatory, w tym takie jak "+=", "++" itp. Zwróć np. uwagę na "i += 1" oraz "j++" w pętli for. Specjalnie tak zrobiłem, aby pokazać, że czasem warto korzystać np. z i+=1 jeśli chciałbyś np. iterować po co drugiej wartości "i+=2" itp. Popatrz też sobie na zagnieżdżone pętle.

Proponuję abyś na spokojnie rozpisał sobie wszystkie iteracje na kartce i ręcznie analizował co za znak będzie się kolejno pojawiał i dlaczego.

Natomiast wersję krótszą pewnie ktoś Ci poda, to taka wersja na pomyślenie :)

komentarz 23 lutego 2018 przez Piotr50 Nowicjusz (240 p.)

Dzięki za odpowiedź. Właśnie próbuję się pobawić z tworzeniem choinki, tylko teraz wyskakuje mi błąd "NaN". 

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Skrypt</title>
</head>
<body>


    <script>

            var result = "";
            var liczba = 5;
            for (var i=0; i<=liczba; i++) {
                var result = "";
                for (var j=i; j<liczba; j++) {
                    var result = " ";
                }
                for (var j=0; j<=liczba; j++) {
                    var result =+ "*";
                }
            }

            alert(result);


    </script>
</body>
</html>

Nie wiem gdzie jest błąd.

Podobne pytania

0 głosów
1 odpowiedź 2,651 wizyt
pytanie zadane 3 października 2018 w Java przez dzideos Obywatel (1,320 p.)
0 głosów
0 odpowiedzi 1,771 wizyt
0 głosów
2 odpowiedzi 943 wizyt

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!

...