gpt4 book ai didi

javascript - Javascript 中数组的排序和中值

转载 作者:行者123 更新时间:2023-12-03 07:39:28 26 4
gpt4 key购买 nike

我一直在研究这段代码,目标是对数组中的数字进行排序,然后找到中位数。我的中位数没有正确输出,当我尝试查看 array[0] 中的内容时,它永远不会有正确的值。我不太确定我哪里搞砸了。

代码:

var array = [];

window.onload = function (){
var answer = '';
var median = 0;
for (var i = 0; i < 8; i++) {
var rand = Math.floor(Math.random() * 101);

array.push(rand);
array.sort(function(a, b){return a-b});


answer = answer + array[i] + " ";

}
median = ((array[3] + array[4]) /2);
document.getElementById("result").innerHTML = answer + "<br />" + median;

}

最佳答案

我建议首先移动循环结尾。目前,每次向数组添加新数字时都会进行排序。这意味着两件事:您在只应该执行一次的事情上浪费了计算能力,并且当您在 answer = answer + array[i] + ""; 行中“记录”结果时,它会不断变化因为订单正在改变。您的函数逻辑是正确的,因此通过进行以下更改,您应该得到您想要的结果。

    var array = [];

window.onload = function (){
var answer = '';
var median = 0;
//Loop is simplified to just push a random value
for (var i = 0; i < 8; i++) {
array.push(Math.floor(Math.random() * 101));
}
//Sort is outside of the loop;
array.sort(function(a, b){return a-b});
//Median is outside of the loop
median = ((array[3] + array[4]) /2);
//answer is outside of the loop (if you don't know reduce look at the link below)
answer = array.reduce( function ( answer , value ) {
return answer + ',' + value;
} );
// put into the dom
document.getElementById("result").innerHTML = answer + "<br />" + median;

}

如果您需要这方面的帮助,请随时给我发消息,另请参阅reduce HERE 的文档。 .

关于javascript - Javascript 中数组的排序和中值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35469092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com