我可以更多地压缩这个JavaScript对象吗?

时间:2018-01-09 00:09:22

标签: javascript compression uri

我有一个2D JS对象数组,我想尽可能地压缩这些数据,以便将数据存储到一个编码为64位URI组件的查询字符串中。到目前为止,我设法通过存储字符代码而不是字符串将我的对象压缩为2071个字符,存储一个标识程序中颜色而不是十六进制代码的数字,并将对象属性名称缩短为一个字符。

var width = 33; //33 
var height = 18; //33
// make 2d array

var tree = new Array(height);

for(i=0; i<height; ++i){

    tree[i] = new Array(width);

}

// fill array with defaults

for(i=0; i<tree.length; ++i){

    for(j=0; j<tree[i].length; ++j){

        tree[i][j] = {
            s:0, // string char code
            c:[0], // color indices
            i:0, // current color index
            r:[0,0], // rate of animation
            b:2 // bgColor color index
        }

    }

}
然后我用json对对象进行字符串化,然后使用lz-string js库创建一个压缩的URI组件字符串:

var treeStringified = JSON.stringify(tree);

var compressed = LZString.compressToEncodedURIComponent(treeStringified);
console.log(compressed);
console.log(compressed.length); 
string = LZString.decompressFromEncodedURIComponent(compressed);
console.log(string);
console.log(string.length);

到目前为止,压缩的URI组件字符串最终为2071个字符,其默认值为“空”值。我有什么方法可以减少更多?

0 个答案:

没有答案