Nazwa zmiennej ze zmienną

Odpowiedz Nowy wątek
2019-04-12 10:53
0

Witam,
mam taki kawałek kodu i nie wiem jak zrobić, aby nazwa zmiennej to była cenanowa i numer np.: cenanowa5.

let cenanowa+numer =  iloscInt * cenastaraFloat;

Pozostało 580 znaków

2019-04-12 11:11
2

Poczytaj o problemie X/Y - już kilka razy go wykazałeś :-) Np. tu:

Podobnie dzieje się tutaj: nie potrzebujesz wcale tworzyć żadnych zmiennych o dynamicznych nazwach - wystarczy Ci jedna zmienna będąca tablicą i pętle.

Na przyszłość pamiętaj, aby opisywać zarówno problem (mam tablicę z produktami oraz ich cenami i nie jestem pewien, w jaki sposób te ceny je zsumować), jak i Twoje podejście do jego rozwiązania (próbowałem tworzyć zmienną o dynamicznej nazwie, lecz niestety taka składnia nie istnieje).


edytowany 5x, ostatnio: Patryk27, 2019-04-12 11:17

Pozostało 580 znaków

2019-04-12 11:16
0

No to mam taki kod i chcę, aby sprawdzał czy wynik (cenarazemokragla) jest równa razemspr, jeśli nie to blokuje kod i odświeża stronę. Jest dużo kodu no ale pokażę może się przyda.

let numer = 0;

function ilosc()
{
    document.getElementById('dalej').style.display="block";

    let rekordy = [...document.querySelectorAll('.wiersz')].length;

        setInterval(function ()
        {   
            while(numer < rekordy)
            {
                    let cenastara = document.getElementById('cenatab'+numer).innerHTML;
                    let inputilosc = document.getElementById('ilosc'+numer);
                    let ilosc = document.getElementById('ilosc'+numer).value;

                    let iloscInt = parseInt(ilosc);
                    let cenastaraFloat = parseFloat(cenastara);

                    let cenanowa = iloscInt * cenastaraFloat;   
                    let cenanowa+numer =  iloscInt * cenastaraFloat;

                    cenanowa = Math.round(cenanowa * 100) / 100;
                    document.getElementById('cenatab'+numer).innerHTML = cenanowa;

                    let numerek = 0;
                    let cenarazem = 0;
                    while(numerek < rekordy)
                    {
                        let razem = document.getElementById('cenatab'+numerek).innerHTML;
                        let razemInt = parseFloat(razem)
                        cenarazem = cenarazem + razemInt;
                        let cenarazemokragla = Math.round(cenarazem * 100) / 100;

                        document.getElementById('razem').style.display='block';
                        document.getElementById('razem').innerHTML = cenarazemokragla;

                        numerek++;
                    }
                    while(numer < rekordy)
                    {
                        let razemspr = razemspr + cenanowa+numer;
                    }

                    if(document.getElementById('razem').innerHTML != razemspr)
                    {
                        alert("Wystąpił błąd podczas sprawdzania poprawności formularza. Spróbuj ponownie.");
                        header("location: podsumowanie.php");
                    }

                    numer++;

            };
        }, 0000);
}

Pozostało 580 znaków

2019-04-12 11:16
2

Czy może chodziło Ci o coś takiego - https://jsfiddle.net/cxzj8esr/

Ważna uwaga - obiekt window działa na zmiennych globalnych.
Nie wiem, czy lepszą opcją by nie było skorzystanie z tablic asocjacyjnych - coś na kształt https://jsfiddle.net/ejmxf1cv/


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say

Pozostało 580 znaków

2019-04-12 11:18
2

Na sam początek: dlaczego masz tam setInterval(..., 0);? Dlaczego robisz coś w tle cały czas? Wygląda to niezbyt ciekawie.


Zapomniałem usunąć, zaraz to zrobię - Gouda105 2019-04-12 11:21

Pozostało 580 znaków

2019-04-12 11:22
0

@cerrato: Pomysł z tablicą asocjacyjną jest ciekawy. Ale tu operuję na liczbach.

edytowany 1x, ostatnio: Gouda105, 2019-04-12 11:23

Pozostało 580 znaków

2019-04-12 11:31
2

Ale to operowanie na liczbach niczego nie zmienia - zobacz: https://jsfiddle.net/c9zwruqj/


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
Jak najbardziej zmienia - w sytuacji tablica[10000000] = true; :-) - Patryk27 2019-04-12 11:33

Pozostało 580 znaków

2019-04-12 11:33
0

Faktycznie. Ogólnie przepraszam, że zadaję łatwe, może głupie pytania, ale jestem tu, aby znaleźć na nie odpowiedź, więc proszę o wyrozumiałość. Piszę tak na wszelki wypadek.

Nie ma nic złego w zadawaniu "prostych" pytań - po prostu opisuj problemy prawidłowo :-) - Patryk27 2019-04-12 11:37
Rozumiem, ale na innym forum to ludzie nie rozumieli, że ktoś nie umie i się denerwowali od razu :) - Gouda105 2019-04-12 11:38
Ale 4P jest wyjątkowe. Jedynie nie lubimy leni i cwaniaków, którzy przychodzą z nastawieniem "macie mi napisać program, który ...". Jak pytający jest normalny, to podejście do niego także :D - cerrato 2019-04-12 11:48
Czysta prawda. - Gouda105 2019-04-12 11:49

Pozostało 580 znaków

2019-04-12 11:58
0

@Patryk27: to jaką metodą to zrobić?

Pozostało 580 znaków

2019-04-12 12:10
1

Wykorzystaj Map.


Pozostało 580 znaków

2019-04-12 12:29
0

No ok, poczytałem trochę o map(), ale teraz nie wiem jak zrobić, aby po każdym okrążeniu pętli do następnego indexu dodawała się wartość z cenastara.

let ceny = [cenastara];
                    while(numer < rekordy)
                    {
                        ceny = ceny + cenastara;
                    }

                    console.log(ceny);

Ten u góry kod zacina stronę i całą przeglądarkę.

edytowany 1x, ostatnio: Gouda105, 2019-04-12 12:30
Pokaż pozostałe 9 komentarzy
Boże, przepraszam. - Gouda105 2019-04-12 12:45
I w ten sposób @Patryk27 został Bogiem :) - Delor 2019-04-12 12:49
@Patryk27: no ale można od razu, że to konstruktor. Ja nie cierpię takich podchodów. - Silv 2019-04-12 14:06
@Silv: map() to nie jest konstruktor, prawdopodobnie. W sumie to nie wiem nic na temat żadnego map(), bo o żadnym nie wspomniałem :-) - Patryk27 2019-04-12 15:11
@Patryk27: to ja się zwykle czepiam takich rzeczy jak wielkość liter. ;) Tak, masz rację, niemniej ja mam na myśli trochę co innego. - Silv 2019-04-12 15:13

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0