String to hex is the goal. Getting a different result when using map directly on a TypedArray vs using Array.from on the TypedArray then using map. Can someone help me understand what is going on?
var buf = new TextEncoder().encode('hello');
var ret = '';
for (var b of buf) ret += b.toString(16).padStart(2, '0').slice(-2);
console.log(
'\n',
buf.join(), // 104,101,108,108,111
'\n',
buf.map(x => x.toString(16).padStart(2, '0').slice(-2)).join(''), // 6865000
'\n',
Array.from(buf).join(), // 104,101,108,108,111
'\n',
Array.from(buf).map(x => x.toString(16).padStart(2, '0').slice(-2)).join(''), // 68656c6c6f
'\n',
ret, // 68656c6c6f
'\n',
decodeURIComponent('%' + ret.match(/.{1,2}/g).join('%')) // hello
);
/*
104,101,108,108,111
6865000
104,101,108,108,111
68656c6c6f
68656c6c6f
hello
*/