JavaScript で文字列を圧縮する

Anika Tabassum Era 2023年10月12日
  1. js-string-compression を使用して JavaScript で文字列を圧縮する
  2. LZString ライブラリを使用して JavaScript で文字列を圧縮する
JavaScript で文字列を圧縮する

JavaScript では、gzip などのファイルの圧縮など、さまざまな圧縮が可能です。 ここでは、文字列を圧縮する 2つの方法について説明します。

最初に、ハフマン アルゴリズムを取り上げます。 そして後で、タスクを解決する LZString の方法について説明します。

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));

出力:

js-string-compression を使用して文字列を圧縮

LZString ライブラリを使用して JavaScript で文字列を圧縮する

LZString ライブラリを介して文字列を圧縮するには、HTML ファイルと js ファイルが必要です。 LZString は、文字列を圧縮するための Perl 実装 (lz-string) です。

依存関係をインポートするには、HTML ファイルと js ファイルがあるルート ディレクトリのターミナルで、以下のコマンド ラインをフォローアップします。

npm install -g lz-string

次に、new.html という名前の HTML ファイルと new.js ファイルを作成します。 また、LZString 実装を格納するlz-string.jsという別のファイルも作成します。

完全なコードについては、この リポジトリ を検討しました。

ここで、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.jsnew.jsnew.html ファイルにインポートします。 ブラウザで HTML ファイルを開くと、出力は次のようになります。

出力:

LZString を使用して文字列を圧縮

お気づきのように、両方のソリューションを比較すると、LZString 実装の方が出力が優れています。 サーバーストレージに巨大なサイズのデータを保存できる大規模なケースの問題を解決するために、専用に進化および設計されました。

Anika Tabassum Era avatar Anika Tabassum Era avatar

Era is an observer who loves cracking the ambiguos barriers. An AI enthusiast to help others with the drive and develop a stronger community.

LinkedIn Facebook

関連記事 - JavaScript String