在 JavaScript 中压缩字符串

在 JavaScript 中,可以进行广泛的压缩,例如 gzip 等文件的压缩等等。在这里,我们将讨论两种压缩字符串的方法。

首先,我们将重点介绍 Huffman 算法。稍后,我们将介绍解决任务的 LZString 方式。

目录

1.用于js-string-compression在JavaScript 中压缩字符串

 2.使用LZString库在JavaScript中压缩字符串


1.用于js-string-compression在JavaScript 中压缩字符串

我们将首先设置一个由文件 ( okay.js) 组成的文件夹。我们使用 VSCode 作为代码编辑器,在其终端中,我们将编写以下命令。

npm i js-string-compression

这将添加实现霍夫曼算法所需的必要包。安装软件包后,您将在根目录中拥有一个package.json和文件。package-lock.json 

package.json应该类似于以下内容。 

{
  "dependencies": {
    "js-string-compression": "^1.0.1"
  }
}

 在下一阶段,我们将编写我们的基本代码,定义一个字符串并设置我们想要检查的参数。让我们检查一下代码行。

代码片段: 

var jsscompress = require("js-string-compression");
var raw_text = "Lorem Ipsum is simply dummy text of the printing and typesetting industry.";
var hm = new jsscompress.Hauffman();
var compressed = hm.compress(raw_text);
console.log("before compressed: " + raw_text);
console.log("length: " + raw_text.length);
console.log("after compressed: " + compressed);
console.log("length: " + compressed.length);
console.log("decompressed: " + hm.decompress(compressed));

 输出:

 2.使用LZString库在JavaScript中压缩字符串

为了通过 LZString 库压缩你的字符串,我们需要一个 HTML 文件和一个 js 文件。LZString 是一种lz-string用于压缩字符串的 Perl 实现 ( )。

要导入依赖项,我们可以在根目录的终端中按照下面的命令行进行操作,其中有我们的 HTML 和 js 文件

npm install -g lz-string

 接下来,我们将创建一个名为的 HTML 文件new.html和一个new.js文件。我们还将创建另一个名为 的文件lz-string.js,我们将在其中存储 LZString 实现。

对于完整的代码,我们考虑了这个存储库

现在,我们将在我们的 中写一些行,new.js预览类似于下面。

代码片段:

var string = "Lorem Ipsum is simply dummy text of the printing and typesetting industry.";
console.log("Size of sample is: " + string.length);
var compressed = LZString.compress(string);
console.log("Size of compressed sample is: " + compressed.length);
console.log(compressed);
string = LZString.decompress(compressed);
console.log("Sample is: " + string);

 准备好new.js文件后,我们将lz-string.jsandnew.js导入new.html文件。当我们在浏览器中打开 HTML 文件时,输出将类似于下面的输出

输出: 

 可以注意到,如果我们比较这两种解决方案,LZString 实现会提供更好的输出。它经过专门改进和设计,旨在解决可以在服务器存储中存储大量数据的大型案例中的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值