javascript中按升序排序随机生成的数组时出现问题
您好,可以按升序对这些随机生成的数字进行排序吗?我在100个数字中创建了40个,它们是唯一的,但当我尝试对它们进行排序时,它们在框中的顺序总是不正确的。我尝试了排序、鸣叫或增加长度,但结果总是一样的。我知道这是非常基本的,但也许我的代码缺少一些东西。。。这是我尝试的最终设置javascript中按升序排序随机生成的数组时出现问题,javascript,html,Javascript,Html,您好,可以按升序对这些随机生成的数字进行排序吗?我在100个数字中创建了40个,它们是唯一的,但当我尝试对它们进行排序时,它们在框中的顺序总是不正确的。我尝试了排序、鸣叫或增加长度,但结果总是一样的。我知道这是非常基本的,但也许我的代码缺少一些东西。。。这是我尝试的最终设置 var randomNums = []; randomNums.sort(function (a,b) { return b - a; }) for(var i = 0; i < 40 ; i+
var randomNums = [];
randomNums.sort(function (a,b) {
return b - a;
})
for(var i = 0; i < 40 ; i++) {
var temp = Math.floor(Math.random() * 100);
if (randomNums.indexOf(temp) == -1) {
randomNums.push(temp);
document.getElementById("box"+i).innerHTML = randomNums [i];
}
else {
i--;
}
}
}```
var randomNums=[];
randomNums.sort(函数(a,b){
返回b-a;
})
对于(变量i=0;i<40;i++){
var temp=数学地板(数学随机()*100);
if(随机数索引of(温度)=-1){
随机推力(温度);
document.getElementById(“box”+i).innerHTML=randomNums[i];
}
否则{
我--;
}
}
}```
在插入数字之前,您正在对数组进行排序。移动:
randomNums.sort(function (a,b) {
return b - a;
})
在for循环之后。原始版
var randomNums = [];
randomNums.sort(function (a,b) {
return b - a;
})
for(var i = 0; i < 40 ; i++) {
var temp = Math.floor(Math.random() * 100);
if (randomNums.indexOf(temp) == -1) {
randomNums.push(temp);
document.getElementById("box"+i).innerHTML = randomNums [i];
}
else {
i--;
}
}
}
一种可能的解决方案可以是,例如:
// create random numbers
const size = 40
const randomNums = []
while (randomNums.length < size) {
const randomNum = Math.floor(Math.random() * 100)
if (randomNums.indexOf(randomNum) === -1) {
randomNums.push(randomNum)
}
}
// sort random numbers
const randomNumsSorted = randomNums.concat().sort(
(a, b) => a - b
)
// output random numbers to html
for (let i = 0; i < size; i++) {
document.getElementById(`box${i}`).innerHTML = randomNumsSorted[i]
}
//创建随机数
常数大小=40
常量随机数=[]
while(随机数长度<大小){
const randomNum=Math.floor(Math.random()*100)
if(randomNums.indexOf(randomNum)=-1){
randomNums.push(randomNum)
}
}
//对随机数排序
const randomnumsorted=randomNums.concat().sort(
(a,b)=>a-b
)
//将随机数输出到html
for(设i=0;i
for循环后,向下移动sort
ing函数。您正在对空数组进行排序。您需要1)生成随机数2)对它们进行排序3)然后显示它们。您的排序函数返回b-a
将按降序排序,如果您希望按升序排序,则应返回a-b
在for
循环之后向下移动排序
ing函数。您正在对空数组进行排序b-a
将产生降序,使用a-b
。另外,你还有一个额外的右括号。我知道在对问题的评论中说明了与原始问题有关的问题,但你应该重新说明问题是什么,以及你在回答问题时采取了哪些措施来纠正这些问题。评论可以被删除,而且经常被删除。我喜欢你在修改后的版本中注释掉原始代码的方式。@StephenP这是真的。我想这是我最后一句话的延续:)谢谢,我很确定在循环之前我必须排序这很好=)谢谢,我很确定在循环之前我必须排序这很好=)谢谢,这也很好,即使编码似乎更实用,我想如果我从头开始这样做会更容易。。。再次感谢=)
// create random numbers
const size = 40
const randomNums = []
while (randomNums.length < size) {
const randomNum = Math.floor(Math.random() * 100)
if (randomNums.indexOf(randomNum) === -1) {
randomNums.push(randomNum)
}
}
// sort random numbers
const randomNumsSorted = randomNums.concat().sort(
(a, b) => a - b
)
// output random numbers to html
for (let i = 0; i < size; i++) {
document.getElementById(`box${i}`).innerHTML = randomNumsSorted[i]
}