JSFiddle - React, Tailwind, and code Playground
JavaScript
function pack(bytes) {
var str = "";
var char;
for(var i = 0, len = bytes.length - 1; i < len; i += 2) {
char = bytes[i] << 8;
char |= bytes[i + 1];
str += String.fromCharCode(char);
}
return str;
}
function unpack(str) {
var bytes = [];
for(var i = 0; i < str.length; i++) {
var char = str.charCodeAt(i);
bytes.push(char >>> 8);
bytes.push(char & 0xFF);
}
return bytes;
}
var tests = [
[],
[126, 0],
[0, 65],
[12, 34, 56],
[0, 50, 100, 150, 200, 250]
];
console.log("starting tests");
tests.forEach(function(v) {
var p = pack(v);
console.log(v, p, unpack(p));
});