Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本JavaScript排序高于平均值和低于平均值_Javascript_Arrays_Average - Fatal编程技术网

基本JavaScript排序高于平均值和低于平均值

基本JavaScript排序高于平均值和低于平均值,javascript,arrays,average,Javascript,Arrays,Average,我正在尝试编写一个JavaScript代码,它将接受用户输入并找到平均值。然后它应该把高于平均数的数字放在列表中,把低于平均数的数字放在列表中。除了对低于平均值和高于平均值的数字进行排序外,一切都正常。谢谢你的帮助 function getNums() { var nums = new Array(); var numAmt = prompt("How many data values do you have?"); numAmt = parseInt(numAmt);

我正在尝试编写一个JavaScript代码,它将接受用户输入并找到平均值。然后它应该把高于平均数的数字放在列表中,把低于平均数的数字放在列表中。除了对低于平均值和高于平均值的数字进行排序外,一切都正常。谢谢你的帮助

function getNums()
{
    var nums = new Array();
    var numAmt = prompt("How many data values do you have?");
    numAmt = parseInt(numAmt);
    var i = 0;
    for (i = 0; i<= numAmt - 1; i++)
    {
        nums[i]= prompt("Enter the data value number " + (i + 1));
    }

    var sum = 0;
    for(i = 0; i < nums.length; i++)
    {
        sum += parseInt(nums[i]); 
        var avg = sum/nums.length;
    }       

    var big = 0;
    var small = 0;
    for (i = 0; i < nums.length; i++) 
    {  
        if (nums[i] > avg)
            big += parseInt(numbers[i]);  
        else
            small += parseInt(numbers[i]);  

        document.getElementById('numbers').innerHTML = "Your data: " + nums;
        document.getElementById('average').innerHTML =("The mean(average) of these numbers is: "  + avg.toFixed(2) +".<br>");
        document.getElementById('bigger').innerHTML = "Your data: " + big;
        document.getElementById('smaller').innerHTML = "Your data: " + small;
    } 
}

我个人会将其分为两个函数,一个专注于查找此数组的平均值,另一个专注于围绕枢轴对此数组进行排序

function mean(arr) {
  var sum = arr.reduce(function (prev, curr) {
    return prev + curr;
  });
  return sum / arr.length;
}

function pivotSort(arr, pivot) {
  var sorted = [];
  arr.forEach(function (val) {
    if (val >= pivot)
      sorted.push(val);
    else 
      sorted.unshift(val);
  });
}

pivot排序甚至没有接近优化,但见鬼,v8现在非常快

为什么我总是看到人们在做新的数组阅读你课本的第三章…你似乎在做数字+数字=数字我们计算平均值的方法似乎不正确,如果只是因为你在循环中计算它,只是为了在下一次迭代中扔掉它。把它移到圈外;并不是为了程序的正确性,而是为了代码的整洁,它会给出完全相同的结果。