Javascript 如何利用JS从用户输入的数字计算中值

Javascript 如何利用JS从用户输入的数字计算中值,javascript,html,math,Javascript,Html,Math,因此,在金融领域,有时找到平均工资是没有意义的。例如,如果一个真正富有的人和一个需要帮助的人的工资相比较,那将是一个非常不平衡的平均水平。因此,中位数更能说明两者之间的关系。我想尝试重新制作这个,但我想知道你们认为第一步是什么 var input = []; var output = 0; var t1 = 0; var t2 = 0; //variables setting start function reset(){ input = []; output = 0;

因此,在金融领域,有时找到平均工资是没有意义的。例如,如果一个真正富有的人和一个需要帮助的人的工资相比较,那将是一个非常不平衡的平均水平。因此,中位数更能说明两者之间的关系。我想尝试重新制作这个,但我想知道你们认为第一步是什么

var input = [];
var output = 0;
var t1 = 0;
var t2 = 0;

//variables setting start 
function reset(){
    input = [];
    output = 0;
    t1 = 0;
    t2 = 0;
}
//variables setting end

//caller functions start
function start(){
    reset();
    t1 = prompt("how many inputs do you want");//asking for how many inputs are wanted 
    do{// repeat until loop
        t2 = 0;
        t2 = prompt("Enter values for the array");//this is how the inputs are entered 
        input.push(t2);
    }while(input.length < t1);//waiting for condition to be met
    t1 = 0;
    input.sort(sortNumber);
    checking();
    if(t1 == 0){
    logic();
    }
}
//caller functions end 

//logic for sorting the numbers start 
function sortNumber(a, b) {
    return a - b;
}
//logic for sorting the numbers end 

// logic for finding the median start
function logic(){
    var i = 0;
    t1 = 0;
    t2 = 0;
    if(input.length % 2 == 0){
        t1 = input.length / 2;
        i = t1;
        t1 = t1 - 1;
        t2 = input[i] + input[t1];
        output = t2 / 2;
        console.log(output);
    }else{
        t1 = input.length / 2;
        t1 = t1 - 0.5;
        output = input[t1];
        console.log(output);
    }
}
//logic for finding the median end 

// logic for checking the input end 
function checking(){
    i = 0;
    do{
        if(input[i] > 0){
            if(input[i] / 1 == input[i]){
                i = i + 1;
            }else{
                console.log("you have something other then a positive integer");
                i = i + 1;
                t1 = 1;
            }
        }else{
            console.log("you have something other then a positive integer");
            i = i + 1;
            t1 = 1;
        }
    }while(i < input.length);
}
//logic for checking the input end 

以下是我试图在代码中实现的目标:1对于任何还不知道的人来说,JavaScript输入/输出通常是异步的,侦听器函数可以实时响应单击或其他用户操作

这里有一种方法可以使用它们来处理从用户输入中计算中位数的过程,为了清晰起见,有意将其冗长化:

/*注意:如果你只想看数学部分,请跳到底部*/ //定义全局 常数 数字=[], inputElement=document.getElementByIdinput, OutputParague=document.getElementByIDOutputParague, enterBtn=document.getElementByIdentiterbtn, calcBtn=document.getElementByIdcalcBtn; //添加侦听器 输入btn.addEventListenerclick,addToArray; calcBtn.AddEventListener单击,计算显示中值; // //定义侦听器 // 函数addToArray{ //获取输入的值并忽略空字符串 让value=inputElement.value; if!value.length{ 回来 } //将值转换为整数注:此技术截断小数 设num=parseIntvalue; //如果无法将值转换为正整数,则投诉 //如果HTML输入元素正在执行其工作,则不会发生这种情况 如果!num | | num a-b; //如果数字的计数是奇数,中间的一个是中位数 i长度%2==1{ let指数=长度/2-0.5; 中位数=数字[指数]; } //否则,两个中间数字的平均值就是中位数 否则{ 允许 index1=长度/2-1, index2=长度/2, num1=数字[index1], num2=数字[index2]; 中位数=num1+num2/2; } //报告结果并清空数组 OutputParagation.innerHTML=中值为+中值; 数字。长度=0; }
为什么不使用数组排序函数,对于中间值,最好在推送之前将类型转换为intIt。然后使用数字排序。字符串排序将给出“1”、“12”、“2”这是我第一次尝试,但用户应该能够输入数字。是否可以用.html实现.js?当然,您只需在OutputParagation之后添加一个元素,并将所有JavaScript代码粘贴在开始和结束脚本标记之间。如果您想更好地了解这些东西是如何工作的,MDN是一个很好的起点: