JS如何把取到的随机数和名字一一对应?

JavaScript026

JS如何把取到的随机数和名字一一对应?,第1张

<!doctype html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="Generator" content="EditPlus®">

<meta name="Author" content="">

<meta name="Keywords" content="">

<meta name="Description" content="">

<title>人员抽取</title>

</head>

<body>

<script> 

function GetRandomNum(Min,Max)

//这是输入10个人的名字

var arr = ["a","b","c","d","e","f","g","h","i","j"]

var Range = Max - Min 

var Rand = Math.random() 

var num = Min + Math.round(Rand * Range)

alert(num+" "+arr[num-1]) 

</script>

<input type="button" id="btn" value="生成随机数" onclick="GetRandomNum(1,9)">

</body>

</html>

可以在img标签中添加类,10个img类名为image0~image9或者添加一个name属性name=0~9;然后判断。或者直接:var num = Math.floor(Math.random()*10)var img = document.getElementsByTagName("img")[num]具体的情况得看你的需求而定。

function nameRnd(name) {

return [...name].reduce((t, c) => (t * c.codePointAt(0)) % 123, 1)

}

nameRnd('张三') // 21

nameRnd('李四') // 95

那个123是指产生的随机数会在0-122的范围内,可以根据需要自己修改

这里使用的是一个比较简单的哈希函数,将每个字符的编码相乘并取余处理

比如上例中的'张三'两个字的10进制编码分别是24352,19977,那么计算过程如下

24352 % 123 = 121

121 * 19977 = 2417217

2417217 % 123 = 21