一、代码思路
1、首先声明一个产生随机数的函数
function getRandom(N, M) {
return Math.floor(Math.random() * (M - N + 1) + N)
}
2、十六进制颜色的表示是:#xxxxxx
十六进制的值有:A,B,C,D,E,F,0,1,2,3,4,5,6,7,8,9
所以需要先定义一个数组用来保存这十五位字符串
let arr = ['0','1','2','3','4','5','6','7','8','8','A','B','C','D','E','F']
声明一个表示十六进制颜色的函数,并且需要调用6次产生随机数的函数,
因为调用getRandom函数的时候,范围在数组arr里面,索引从0开始,所以范围是(0,arr.lenght-1)
function getColor(){
let arr = ['0','1','2','3','4','5','6','7','8','8','A','B','C','D','E','F']
let color1 = getRandom(0,arr.length-1)
let color2 = getRandom(0,arr.length-1)
let color3 = getRandom(0,arr.length-1)
let color4 = getRandom(0,arr.length-1)
let color5 = getRandom(0,arr.length-1)
let color6 = getRandom(0,arr.length-1)
return `#${color1}${color2}${color3}${color4}${color5}${color6}`
}
但是这种方法只适合调用少数量的,如果需要多个数字,一直调用的话会很繁琐,所以代码可以更新。
思路:
①使用字符串拼接的方法,随机调用字符串六次,并且将随机得到的字符串和#拼接在一起
②使用for循环6次,因为十六进制后#后面有6位
③定义一个颜色 str = ‘ # ’
④将每次产生的随机数赋值给颜色str
⑤返回颜色值
function getColor(){
let arr = ['0','1','2','3','4','5','6','7','8','8','A','B','C','D','E','F']
let str = '#'
for(i=0;i<6;i++){
let temp = arr[getRandom(0,arr.length-1)]
str = str +temp
}
return str
}