Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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_Html - Fatal编程技术网

javascript中按升序排序随机生成的数组时出现问题

javascript中按升序排序随机生成的数组时出现问题,javascript,html,Javascript,Html,您好,可以按升序对这些随机生成的数字进行排序吗?我在100个数字中创建了40个,它们是唯一的,但当我尝试对它们进行排序时,它们在框中的顺序总是不正确的。我尝试了排序、鸣叫或增加长度,但结果总是一样的。我知道这是非常基本的,但也许我的代码缺少一些东西。。。这是我尝试的最终设置 var randomNums = []; randomNums.sort(function (a,b) { return b - a; }) for(var i = 0; i < 40 ; i+

您好,可以按升序对这些随机生成的数字进行排序吗?我在100个数字中创建了40个,它们是唯一的,但当我尝试对它们进行排序时,它们在框中的顺序总是不正确的。我尝试了排序、鸣叫或增加长度,但结果总是一样的。我知道这是非常基本的,但也许我的代码缺少一些东西。。。这是我尝试的最终设置

  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]
}