如何将数组转换为最短的字符串

Julesbou

我有以下数组(我正在使用JavaScript):

var arr = [2, 0, 0, 0, 12]

(数组的每个元素可以在0之间15。长度是固定的,5个元素。)

我想将此数组转换为最短的字符串。我的实际解决方案是将其转换为十六进制(base16)字符串:

var str = '2000c'

有更好的解决方案吗?(我正在寻找JavaScript解决方案,如果可能的话,没有任何库)

Arnauld

您的输入为5 * 4位= 20位。您可以将数组重新编码为3个字符的字符串(24位,实际有效载荷为20位),并使用btoa()对其进行编码,以生成4个字符的可打印字符串。

function pack(arr) {
  return btoa(
    String.fromCharCode(
      (arr[1] << 4) | arr[0],
      (arr[3] << 4) | arr[2],
      arr[4]
    )
  );
}

var packed = pack([2, 0, 0, 0, 12]);

console.log(packed); // output: 'AgAM'

解包函数将使用atob()并重建原始数组,如下所示:

function unpack(packed) {
  var str = atob(packed);
  
  return [
    str.charCodeAt(0) & 0xf,
    str.charCodeAt(0) >> 4,
    str.charCodeAt(1) & 0xf,
    str.charCodeAt(1) >> 4,
    str.charCodeAt(2)
  ];
}

var unpacked = unpack('AgAM');

console.log(unpacked); // output: [ 2, 0, 0, 0, 12 ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将字符从数组转换为字符串

来自分类Dev

如何将字符数组转换为字符串

来自分类Dev

如何将JSON数组转换为字符串..?

来自分类Dev

如何将JSON转换为数组或字符串?

来自分类Dev

Java,如何将字符串转换为数组

来自分类Dev

如何将键值对的字符串转换为数组

来自分类Dev

如何将数组转换为字符串

来自分类Dev

如何将数组转换为字符串

来自分类Dev

如何将字符串转换为数组

来自分类Dev

如何将字符串转换为对象数组?

来自分类Dev

如何将字符串转换为Python数组?

来自分类Dev

如何将字符串转换为数组?

来自分类Dev

如何将Xml转换为字符串数组

来自分类Dev

如何将字符串转换为数组?

来自分类Dev

如何将字符串转换为和数组

来自分类Dev

如何将字符串转换为数组列表

来自分类Dev

如何将字符串转换为数组

来自分类Dev

如何将字符串转换为对象数组

来自分类Dev

如何将 TxtNation 字符串转换为数组?

来自分类Dev

如何将字符串数组转换为对象

来自分类Dev

如何将字符串数组转换为NSData,如何将NSData转换为字符串数组?

来自分类Dev

如何将字符串转换为数组中的字符串数组

来自分类Dev

如何将字符串转换为数组(int和字符串数组)?

来自分类Dev

如何将字符串数组转换为D中的字符串?

来自分类Dev

如何将字符串的单元格数组转换为字符串矩阵?

来自分类Dev

如何将字符串转换为数组构造器的字符串

来自分类Dev

如何将字符串的打字稿类型转换为字符串数组?

来自分类Dev

如何将字符串转换为字符串数组 String()?

来自分类Dev

如何将字符串数组数组转换为数字数组数组?

Related 相关文章

热门标签

归档