• 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

Object Storage Arubacloud
0 głosów
1,550 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,779 wizyt
0 głosów
1 odpowiedź 121 wizyt
0 głosów
1 odpowiedź 256 wizyt
pytanie zadane 18 marca 2020 w C i C++ przez ResCrove Obywatel (1,700 p.)

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

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

...