怎么用js求出6个1至100的随机数,并且求出奇数和?

JavaScript037

怎么用js求出6个1至100的随机数,并且求出奇数和?,第1张

<script>

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())