[英]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.