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

funkcja licząca średnią arytmetyczną liczb parzystych

VPS Starter Arubacloud
0 głosów
1,661 wizyt
pytanie zadane 9 grudnia 2018 w JavaScript przez aniaska4 Obywatel (1,010 p.)

Hej napisałam kod liczący średnią arytmetyczną liczb pierwszych i wychodzi mi jakiś wynik, ale licząc to z głowy niestety powinien być inny

function multiply(array){
    let sum = 0;
    for(let el of array){
        if(el%2 === 0){
            sum=+el;
        }
        return sum
    }
    console.log(sum/length)
}
multiply([2,3,4,5,6,7,8]);

frown nie wiem w sumie co mi teraz ta funkcja wylicza. Jakaś podpowiedź może?

2 odpowiedzi

+1 głos
odpowiedź 9 grudnia 2018 przez RafalS VIP (122,820 p.)
wybrane 9 grudnia 2018 przez aniaska4
 
Najlepsza
function multiply(array){
    let sum = 0;
    for(let el of array){
        if(el%2 === 0){
            sum+=el;
        }
    }
    return sum;
}
console.log(multiply([2,3,4,5,6,7,8]));

Miałeś =+ zamiast += oraz zwracałeś wynik w pierwszej iteracji petli. A wynik próbowaleś wypisać po returnie, gdzie program nigdy nie docierał.

komentarz 9 grudnia 2018 przez aniaska4 Obywatel (1,010 p.)
ok dzięki, rzeczywiście dużym błędem był źle umieszczony return :/ Ale teraz gdybym chciała wyliczyć średnią to powinnam sumę podzielić przez length. Jednak przy return jak to zrobię: return sum/length => to wywala mi nieskończoność w konsoli. A wydaje mi się, że tak byłoby prawidłowo
komentarz 9 grudnia 2018 przez RafalS VIP (122,820 p.)
return sum/array.length;

 

komentarz 9 grudnia 2018 przez aniaska4 Obywatel (1,010 p.)
No dobra, ale teraz liczy mi średnią ze wszystkich liczb podanych w tablicy, a ja chciałam wyliczyć średnią z liczb parzystych (nie pierwszych- coś mi się pomyliło jak pisałam). Czyli wg mojego liczenia w głowie to suma liczb parzystych to 20 i chciałabym ja podzielić na 4 bo tyle ich mam, a nie przez wszystkie w tablicy. Myślałam, że jak dam samo length to weźmie tylko te liczby parzyste pod uwagę :/
komentarz 9 grudnia 2018 przez RafalS VIP (122,820 p.)

Musisz je zliczyć


function multiply(array){
    let sum = 0;
    let counter = 0;
    for(let el of array){
        if(el%2 === 0){
            sum+=el;;
            counter++;
        }
    }
    return sum/counter;
}
console.log(multiply([2,3,4,5,6,7,8]));

 

komentarz 9 grudnia 2018 przez aniaska4 Obywatel (1,010 p.)
ooooo nie wpadłabym na to... dziękuję bardzo. zaraz sobie to jeszcze przeanalizuje dokładnie. Dzięki wielkie!
0 głosów
odpowiedź 9 grudnia 2018 przez Grzegorz :> Dyskutant (8,050 p.)
Kod w takiej formie nie liczy średniej arytmetycznej liczb pierwszych tylko liczb parzystych.

Wynik jest być inny, bo zamiast "sum=+el" powinnaś użyć "sum+=el".
Rozumiem, że wcześniej zadeklarowałaś zmienną "length" zawierającą ilość elementów tablicy.

Ten console.log(sum/length) w sumie nie moze dzialac, bo przed nim zadeklarowalas return.

https://codepen.io/anon/pen/jXOyog?&editable=true
komentarz 9 grudnia 2018 przez aniaska4 Obywatel (1,010 p.)
No dobra, ale teraz liczy mi średnią ze wszystkich liczb podanych w tablicy, a ja chciałam wyliczyć średnią z liczb parzystych (nie pierwszych- coś mi się pomyliło jak pisałam). Czyli wg mojego liczenia w głowie to suma liczb parzystych to 20 i chciałabym ja podzielić na 4 bo tyle ich mam, a nie przez wszystkie w tablicy. Myślałam, że jak dam samo length to weźmie tylko te liczby parzyste pod uwagę :/

Podobne pytania

0 głosów
1 odpowiedź 1,996 wizyt
0 głosów
1 odpowiedź 140 wizyt
0 głosów
1 odpowiedź 310 wizyt
pytanie zadane 18 marca 2020 w C i C++ przez ResCrove Obywatel (1,700 p.)

93,025 zapytań

141,990 odpowiedzi

321,292 komentarzy

62,371 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!

...