Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak obliczyć medianę
Malinaa
post
Post #1





Grupa: Zarejestrowani
Postów: 578
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Jak obliczyć medianę w JavaScript?
Jest takie zadanie:
https://dbm.org.pl/__TESTY/test-1.htm
Kto wie jak się to robi w JS i dla przykładu wyznaczy medianę wydatków,
o co chodzi z food, fuel w expenses?

Ten post edytował Malinaa 17.07.2024, 12:40:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




no oni podalo ci kod js jak to ma wygladac. podali ci funkcje ktora ma przyjac te expenses i zwrocic mediane.

No w srodek tej funkcje wloz swoj kod js i juz. Tak, w js mozna deklarowac funkcje w funkcji

czyli mniej wiecej tak to mogloby byc,


Kod
function ICHFUNKCJA(expenses) { //sorki, nie pamietam jak oni to nazwali a ty skasowales zrodlo


    function getFirstSunday(year, month) {
            let firstDay = new Date(year, month - 1, 1);
            let firstSunday = new Date(firstDay);
            
            firstSunday.setDate(firstDay.getDate() + (7 - firstDay.getDay()) % 7);
            
            return firstSunday;
        }
        
        function calculateMedian(amount) {
            if (amount.length === 0) return null;
            
            amount.sort((a, b) => a - b);
            
            const middle = Math.floor(amount.length / 2);
            
            return amount.length % 2 !== 0 ? amount[middle] : (amount[middle - 1] + amount[middle]) / 2;
        }
        
            let allExpenses = [];
            
            for (let expense in expenses) {
                let [year, month] = expense.split('-').map(Number);
                let firstSunday = getFirstSunday(year, month);
                
                for (let day in expenses[expense]) {
                    let currentDate = new Date(year, month - 1, Number(day));
                    
                    if (currentDate <= firstSunday) {
                        for (let category in expenses[expense][day]) {
                            allExpenses.push(...expenses[expense][day][category]);
                        }
                    }
                }
            }
        
            return calculateMedian(allExpenses);
        
}
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 29.12.2025 - 18:03