用于查询字符串的位字段
Bit field for use in query string
我有一个256个字符长的字符串,我想用JavaScript缩小它,这样我就可以把它用作url中查询字符串的一部分。我不确定最好/最有效的方法是什么。
我想我想要类似于这个解决方案的东西,创建一个大的位字段,但我的位字段只有1和0。
有什么想法吗?
下面是我的想法。我的位字段保存在一个数组中。如果我将数组分成16个较小的块,我可以执行以下操作。
var bitArray = [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
console.log('Original array', bitArray);
// Logs "Original array [ 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]"
var stringToArray = function (str) {
var arr = [];
for (var i = 0; i < str.length; i++) {
arr.push(parseInt(str[i], 10));
}
return arr;
};
var addPadding = function (str, maxLength) {
for (var i = 0; i < maxLength - str.length; i++) {
str = '0' + str;
}
return str;
};
var shrink = function (str) {
str = parseInt(str, 10);
str = str.toString(36);
return str;
};
var expand = function (str) {
str = parseInt(str, 36) + '';
return str;
};
var qs = bitArray.join('');
qs = shrink(qs);
console.log('Shrunk value', qs);
// Logs "Shrunk value 3xsdgob0n"
// 10 characters is the maximum length of base36 string when converted.
qs = addPadding(qs, 10);
qs = addPadding(expand(qs), bitArray.length);
console.log('Re-expanded array', stringToArray(qs));
// Logs "Re-expanded array [ 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]"
相关文章:
- 如何从查询字符串中的输入字段发回文本
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 使用Mongoose在字段的子字符串上填充
- 使用jQuery从隐藏字段中的字符串中删除一个值
- Inout Text字段在转换为字符串并输出时生成一个空行
- 使用javascript字符串填充多个输入字段
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- JavaScript cookie 输入字段字符串显示错误
- JavaScript RegEx - 加载十六进制或空字符串的动态字段
- 如何让图表(饼图)在dc.js,d3和交叉过滤器(节点)中的.csv字符串字段上进行分组.js.js
- 如何将 JSON 字符串转换为带有 Javascript 中字段的对象
- 将焦点和光标设置为文本输入字段/字符串 w. Jquery 的末尾
- 在数组中存储 JQuery 字段与仅存储选择字符串相比如何
- 我有一个问题,使用 Javascript 或 Jquery 创建具有字符串计数的动态字段
- 隐藏字段值未显示在查询字符串中
- JavaScripts,AJAX,PHP:获取json字符串后无法设置字段值
- Mongodb:不能使用字符串字段名称附加到数组
- 在输入字段中使用子字符串
- 如何使用 Angular “数字”过滤器键入时在输入字段中设置带有千和小数分隔符的字符串格式
- JavaScript中的正则表达式获取以特定字符串开头的数组的所有字段