所以我有一个对象, type" Buffer", 数据是[0,0,2,6,116]的数组。
如果将此数组视为小数,我想转换为十六进制字符串。 0,0,2,6,116 => 0,0,2,6,74 => 00,00,20,06,74
最终我想在网页上看到20674或0000020674。
请问Javascript中最快的方式/内置函数是什么?
答案 0 :(得分:0)
根据缓冲区的大小,字符串连接可能很昂贵。因此,最快的方法可能是对数据进行编码并使用String.fromCharCode
来构建字符串:
function dataToString(data){
var buffer = [], table = [48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70];
for (var i = 0; i < data.length; ++i){
buffer.push(table[data[i] >> 4]);
buffer.push(table[data[i] & 15]);
}
return String.fromCharCode.apply(String, buffer);
}
dataToString([0,0,2,6,116]);
或者使用字符串连接:
[0,0,2,6,116].map(v => "0123456789ABCDEF"[v >> 4] + "0123456789ABCDEF"[v & 15]).join('');