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

Nie działa else

Object Storage Arubacloud
0 głosów
466 wizyt
pytanie zadane 8 lutego 2023 w JavaScript przez niezalogowany
<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">

</head>

<body>
<input type="number"id = "num1"value = "1">

<input type="number"id = "num2"value = "1">


<button onclick = "my()"></button>
<p id = "result1"></p>


<p id = "result2"></p>

<script>
	function my()

	{

const num1 = document.getElementById("num2").value.toString();

const num2 = document.getElementById("num2").value.toString();

const num1_ = num1[0];

const num2_ = num2[0];
const num = [num1,num2];

numbers = {a:num1_,b:num2_};

let y = 0;
for (let x in numbers,y++)
{
	if (numbers[x] == "-")
		{
			document.getElementById("result1").innerHTML = "Liczba " + num[y] + " jest liczba ujemna";



		}
		
	else

			{

				document.getElementById("result2").innerHTML = "Liczba " + num[y] + " jest liczba dodatnia";

			}


	
}
	}


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

Szukam i nie mogę znaleźć błędu przez który instrukcja else nie jest wykonywana.

komentarz 8 lutego 2023 przez adrian17 Ekspert (345,160 p.)

for (let x in numbers,y++)

To wygląda mega dziwnie i na 100% robi co innego niż miałeś na myśli.

Wypisz sobie też wartości tych wszystkich zmiennych num1_, num2_, numbers etc - bo też dziwnie nimi żonglujesz.

Nie wiem też czemu masz słownik i for..in, jak by wystarczyło zwykłe for..of na tablicy. 

komentarz 8 lutego 2023 przez niezalogowany
Nie wiedziałem że jest coś takiego jak for of

2 odpowiedzi

0 głosów
odpowiedź 8 lutego 2023 przez radek024 Szeryf (77,160 p.)

Hej,

utworzyłem snippet na codepenie z Twoim problemem. Zakładam, że kod który napisałeś ma za zadanie sprawdzić, czy liczba jest ujemna, czy też dodatnia i robi to w następujący sposób:

  1. Po kliknięciu uruchom funkcję my().
  2. Pobierz wartości z formularza
  3. Przejdź po wartościach
  4. Jeżeli liczba jest ujemna - daj infomację do results1.
  5. W przeciwnym razie do results2.

Rzeczy, które nie do końca wyglądają okej:

  1. Dlaczego bierzesz wartość poprzez toString()?
  2. Czy faktycznie potrzebujesz zmiennych num1_ i num2_? Czemu one służą?
  3. Przypisujesz wartość numbers, ale nigdzie nie definiujesz takiego obiektu.
  4. To co się dzieje w pęli też wygląda dość niejasno. Po co tam y?

A co gdyby:

  1. Pobierać wartość inputów, a nie tekst z pola?
  2. Zdefiniować obiekt i dodać elementy w prawidłowy sposób?
  3. Przejść po obiekcie i sprawdzić wartość na podstawie warunku większy/mniejszy od zera?
  4. Podać właściwą wartość.

Trudno dokładnie powiedzieć jaki element JSa chcesz zbadać, ale sporo rzeczy możesz poprawić. Spróbuj przejść przez każde z zadanych pytań i napisz kod od nowa.

komentarz 8 lutego 2023 przez niezalogowany
Dzięki za radę.
0 głosów
odpowiedź 8 lutego 2023 przez VBService Ekspert (253,520 p.)
edycja 8 lutego 2023 przez VBService

Dla wskazanego kodu np. nie prościej będzie

[ on-line ]

function my() {
  const num1 = document.getElementById("num1").value,
        num2 = document.getElementById("num2").value;

  const res1 = (num1 < 0) ? 'ujemna':'dodatnia';
  document.getElementById("result1").textContent =
    "Liczba " + num1 + " jest " + res1;
  const res2 = (num2 < 0) ? 'ujemna':'dodatnia';
  document.getElementById("result2").textContent =
    "Liczba " + num2 + " jest " + res2;
}

 

lub nawet

[ on-line ]

function my() {
  const numbers = document.querySelectorAll('[id^="num"]'),
        result = document.getElementById('result');

  result.textContent = '';  
  for (number of numbers)
    result.textContent += 'Liczba ' + number.value + 
      ' jest ' + ((number.value < 0) ? 'ujemna':'dodatnia') + '\n';
}

 

1
komentarz 9 lutego 2023 przez niezalogowany
Dzięki za te przykłady bardzo mi się przydały plus poznałem nowe funkcje.

Podobne pytania

0 głosów
1 odpowiedź 506 wizyt
pytanie zadane 13 lutego 2020 w C i C++ przez kasialke Nowicjusz (230 p.)
0 głosów
2 odpowiedzi 1,767 wizyt
pytanie zadane 4 października 2016 w C i C++ przez Tymek Nowicjusz (160 p.)
0 głosów
1 odpowiedź 2,078 wizyt
pytanie zadane 22 września 2015 w C i C++ przez imlachim Nowicjusz (210 p.)

92,596 zapytań

141,446 odpowiedzi

319,720 komentarzy

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

...