document.write("<p>6个1-100的随机数为:")
for(var i=0,s=0i<6i++){
var n=parseInt(Math.random()*100)+1
if(i>0)document.write("、")
document.write(n)
if(n%2==1)s+=n
}
document.write("</p><p>其中的奇数和为 "+s+"</p>")
</script>
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
var num = []
// 随机生成20个1~100的数
for(var i = 0i<40i++){
num[i] =parseInt(Math.random()*100)
}
//判断是否能被2整除,删除
for(var i = 0i<40i++){
if(num[i]%2 == 0){
delete num[i]
}
}
// 遍历打印
for(var x in num){
document.writeln(num[x])
}
</script>
</body>
</html>
有点小bug,大概就是这样,我纯手写的
var getRandomArray = function() {var i = 0,
s = '',
sp = ',',
next
while (i <100) {
// 产生1-100的随机数
next = Math.random() * 100 + 1
// 判断产生的数是否在随机数字符串里
if (s.indexOf(next) === -1) {
// 不存在
// 则加上这条
s += next + sp
// 并且记数器加1
i++
}
// 否则记数器不加1,继续循环
}
// 最后得到的是xx,xx,形式的字符串
// 因为split函数会保留最后一个分隔符后的数
// 所以通过slice(0,-1)去掉最后一个字符(也就是,号)
// 这样99个分隔符拼成的字符串就会被,号分割
// 成100个随机数组了
return s.slice(0, -1).split(',')
}
alert(getRandomArray())