- 随机生成数组,使用 Math.random() 来生成一个 [0, 1) 之间的随机浮点数,然后乘以256,再取整,从而得到一个 [0, 255] 之间的随机整数,这个整数就被用来初始化字节数组的一个元素
- 使用let 生成一个包含10个元素的随机字节数组,let声明的变量只能是全局或者整个函数块的。let声明的变量只在声明它的代码块{}内有效,在代码块{}外无法访问。与var不同的是,var声明的变量在声明后有变量提升,而let声明的变量不存在变量提升遍历字节数组,每次取出一个字节。
- 将该字节转换为十六进制表示,方法是将其转换为32位无符号整数,然后使用toString(16)方法转换为十六进制。
- 将得到的十六进制字符串添加到结果数组中。
- 最后,将结果数组连接成一个字符串。
/**
* js 字节数组转十六进制方法
* @author wfl
*/
/**
* 生成一个包含10个元素的随机字节数组
*/
function generateRandomBytes(length) {
let bytes = [];
for(let i = 0; i < length; i++) {
bytes.push(Math.floor(Math.random() * 256));
}
return bytes;
}
/**
* 使用padStart函数确保每个字节都至少有两位
* @param bytes
* @returns
*/
function bytesToTest(bytes) {
const wfl = [];
for (let i = 0; i < bytes.length; i++) {
const wflByte = bytes[i].toString(16);
wfl.push(wflByte.padStart(2, '0'));
}
return wfl.join('');
}
let bytes = generateRandomBytes(10);
console.log(bytes);
var result = bytesToTest(bytes);
console.log("=====result====:"+result);