簡體   English   中英

我如何計算平均值?

[英]How do i calculate the average value?

我有點堅持使用平均函數....我想計算以下變量的平均值

Diebstahl Gewalt- und Tötungsdelikt Diebstahl Verbale Gewalt Freiheitsberaubung Sexualdelikt Sachbeschädigung Hausfriedensbruch Hausfriedensbruch inkl. Diebstahl Sachbeschädigung

// Dropdown Text selektieren - Straftatbestand
function selectStraftat() {
    var select = document.getElementById("ddStraftat");
    straftat = select.options[select.selectedIndex].text;
    ladeKarte();
}

function selectYear(value) {
    jahr = value;
    (document.getElementById("Year")).textContent = jahr;
    ladeKarte();
}

function ArrayAvg(wertediebstahl) {
    var i = 0, summ = 0, ArrayLen = wertediebstahl.length;
    while (i < ArrayLen) {
        summ = summ + wertediebstahl[i++];
}
    return summ / ArrayLen;
}

var a = ArrayAvg(wertediebstahl);
console.log(a)

// Asynch 
async function ladeKarte() {
    console.log(straftat, jahr)
    const karteSchweiz = await fetch(
        'https://code.highcharts.com/mapdata/countries/ch/ch-all.topo.json'
    ).then(response => response.json());

// Mit const wird eine Variable fixiert und durch das nicht mehr änderbar gemacht
    let ergebnis = [];
    DATA.forEach(d => {
        const objDelikt = d["Straftatbestand"];
        const objJahr = d["year"];
        const objKanton = d["Kanton"];
        const objWert = d["value"];

        if (objDelikt === straftat && objJahr === jahr) {
            ergebnis.push([objKanton, objWert]);
        }
    });
    // Die drei dots nehmen setzen einen Array -Datentyp- operator ein. Werte werden dabei umtransformiert und expanded. Bsp. Array 1,2,3 -> Transformation -> jeder eizelner Wert ist ein Argument.
    // Anstatt beliebige Anzahl bzw. in Min & Max. Spread operatro entpackt die einzelne Argument und setzt 
    let werte = DATA.map(d => d["value"]);
    let min = Math.min(...werte);
    let max = Math.max(...werte);

// Daten werden hier nach Straftatbestände gefiltert und ausgepsielt. Da es Strings sind, müssen sie in Zahlen umgewandelt werden -ParsInt- danach wird durch Map die Zahl umtransformiert. 
    let wertediebstahl = DATA.filter(d => d["Straftatbestand"] === "Gewalt- und Tötungsdelikt" && parseInt(d["year"]) <= parseInt(jahr)).map(d =>d["value"]);
    let diebstahl = DATA.filter(d => d["Straftatbestand"] === "Diebstahl" && parseInt(d["year"]) <= parseInt(jahr)).map(d =>d["value"]);
    let verbalegewalt = DATA.filter(d => d["Straftatbestand"] === "Verbale Gewalt" && parseInt(d["year"]) <= parseInt(jahr)).map(d =>d["value"]);
    let freiheitsberaubung = DATA.filter(d => d["Straftatbestand"] === "Freiheitsberaubung" && parseInt(d["year"]) <= parseInt(jahr)).map(d =>d["value"]);  
    let sexualdelikt = DATA.filter(d => d["Straftatbestand"] === "Sexualdelikt" && parseInt(d["year"]) <= parseInt(jahr)).map(d =>d["value"]);
    let sachbeaschadigung = DATA.filter(d => d["Straftatbestand"] === "Sachbeschädigung inkl. Diebstahl" && parseInt(d["year"]) <= parseInt(jahr)).map(d =>d["value"]);
    let hausfriedensbruch = DATA.filter(d => d["Straftatbestand"] === "Hausfriedensbruch" && parseInt(d["year"]) <= parseInt(jahr)).map(d =>d["value"]);  
    let hausfriedensbruch2 = DATA.filter(d => d["Straftatbestand"] === "Hausfriedensbruch inkl. Diebstahl" && parseInt(d["year"]) <= parseInt(jahr)).map(d =>d["value"]);
    let sachebschaedigung = DATA.filter(d => d["Straftatbestand"] === "Sachbeschädigung" && parseInt(d["year"]) <= parseInt(jahr)).map(d =>d["value"]);

   // let durchschnitt = wertediebstahl // durschnitt
    //html element definieren, element holen und ins HTML einfügen! 
    

    Highcharts.mapChart('container', {
        // Umrisskarte setzen
        title: {
            text: " "
        },
        chart: {
            map: karteSchweiz
        },
        // Farbgebung, dynamisch gesetzt anahnd min & max
        colorAxis: {
            min: min,
            max: max,
            minColor: '#FFFFFF',
            maxColor: '#622684'
        },
        // die eigentlichen Daten
        series: [{
            data: ergebnis,
            name: 'Anzahl',
            // Hover-Effekt
            states: {
                hover: {
                    color: '#622684'
                }
            },
            // Beschriftung der Daten
            dataLabels: {
                enabled: true,
                format: '{point.name}'
            }
        }]
    });

}
ladeKarte();

謝謝你的幫助! 非常感激!

在您的代碼中將myArray替換為wertediebstahl

或者如果你想用參數制作你的函數

ArrayAvg(myArray)替換ArrayAvg(wertediebstahl) )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM