小程序
小游戏
企业微信
微信支付
扫描小程序码分享
function ab2hex(buffer) {
var hexArr = Array.prototype.map.call(
new Uint8Array(buffer),
function (bit) {
return ('00' + bit.toString(16)).slice(-2)
})
return hexArr.join('');
}
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
首先new Uint8Array(buffer)构造函数会生成一个数组a,然后通过call方法将map方法的this指向a,相当于a数组调用一次map方法,所以函数可以改写成:
var hexArr = new Uint8Array(buffer).map(
)
剩下的那些toString、slice和join方法可以自行百度解决
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
好的,谢谢
通俗总结:ArrayBuffer转换为byte
Array.prototype.map.call 用来传入一个类数组对象
new Uint8Array(buffer),是一个ArrayBuffer
讲的太生硬
嗯,主要是 function(bit){
return ('00'+bit.toString(16).slice(-2))
}没看懂
百度一下闭包
bit应该是一个num值 toString(16) 转成 16进制 slice(-2) 取最后两位 然后前面加两个00
最后输出应该是 一个 长度为4的 字符串
00作为参数补到bit.toString的前两位
去报个班吧
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
首先new Uint8Array(buffer)构造函数会生成一个数组a,然后通过call方法将map方法的this指向a,相当于a数组调用一次map方法,所以函数可以改写成:
function ab2hex(buffer) {
var hexArr = new Uint8Array(buffer).map(
function (bit) {
return ('00' + bit.toString(16)).slice(-2)
}
)
return hexArr.join('');
}
剩下的那些toString、slice和join方法可以自行百度解决
好的,谢谢
通俗总结:ArrayBuffer转换为byte
Array.prototype.map.call 用来传入一个类数组对象
new Uint8Array(buffer),是一个ArrayBuffer
讲的太生硬
嗯,主要是 function(bit){
return ('00'+bit.toString(16).slice(-2))
}没看懂
百度一下闭包
bit应该是一个num值 toString(16) 转成 16进制 slice(-2) 取最后两位 然后前面加两个00
最后输出应该是 一个 长度为4的 字符串
00作为参数补到bit.toString的前两位
去报个班吧