我正在尝试编写一个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;
}
}
答案 0 :(得分:0)
我个人会把它分成两个函数,一个专注于“找到这个数组的平均值”,另一个专注于“围绕一个数据库排序这个数组。”
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);
});
}
枢轴排序甚至没有接近优化,但是,现在,v8非常快。