javascript - 如何使用最多 16 个数字/字符的十六进制限制 (16) 将值增加到预定义的值?(Javascript)
问题描述
我正在尝试将种子增加到最多 16 个(使用十六进制:0123456789ABCEDF),限制为 16 个数字/字符。
类似于在范围内生成结果的函数,例如:
在 0 到 33 之间,结果应该是:
0: "0000000000000000"
1: "0000000000000001"
2: "0000000000000002"
3: "0000000000000003"
4: "0000000000000004"
5: "0000000000000005"
6: "0000000000000006"
7: "0000000000000007"
8: "0000000000000008"
9: "0000000000000009"
10: "000000000000000A"
11: "000000000000000B"
12: "000000000000000C"
13: "000000000000000D"
14: "000000000000000E"
15: "000000000000000F"
16: "0000000000000010"
17: "0000000000000011"
18: "0000000000000012"
19: "0000000000000013"
20: "0000000000000014"
21: "0000000000000015"
22: "0000000000000016"
23: "0000000000000017"
24: "0000000000000018"
25: "0000000000000019"
26: "000000000000001A"
27: "000000000000001B"
28: "000000000000001C"
29: "000000000000001D"
30: "000000000000001E"
31: "000000000000001F"
32: "0000000000000020"
33: "0000000000000021"
我已经做了一个随机函数来生成种子(这更容易)。但是,如果我想按顺序生成它们,我应该如何进行?
随机函数:
function makeid(length) {
let result = '';
result += "0x";
var characters = '0123456789ABCDEF';
var charactersLength = characters.length;
for ( let i = 0; i < length; i++ ) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
let seeds = ""
let number = 50;
function genSeeds(number){
for(let s=0;s<number;s++){
seeds+= "<span>"+makeid(16)+"</span><br>"
}
$('.result').html(seeds);
}
genSeeds(number);
.result {
font-family: consolas;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="result"></div>
解决方案
您可以采用一个函数,将一个添加到给定的十六进制字符串。
function inc(hex) {
var carry = 1;
return [...hex].reduceRight((r, v) => {
r.unshift(((carry += parseInt(v, 16)) % 16).toString(16));
carry >>= 4;
return r;
}, []).join('');
}
var value = '000000000000000A',
count = 10;
while (count--) console.log(value = inc(value));
推荐阅读
- android - Android 测试存储健康:获取存储和 Ram 健康
- javascript - 如何在没有 nodeIntegration [电子] 的情况下在 index.html 中使用 node.js
- asp.net-mvc - 如果 WebGrid MVC c# 中的列中的文本过多,则显示更多或显示更少链接
- javascript - 如果动画类在页面上不是唯一的,动画模块将停止正常工作
- php - string(53) "user_name=test&password=471476&sessionId=1&userType=1" 如何在数组中获取这个值
- typo3 - HMENU Browse - 即使 ATagTitle 为空也显示 linkWrap (TYPO3 8.7.x)
- apache - .htaccess 的 SSL 重写和 URL 重写
- javascript - 运行角度测试用例的 Python 脚本
- javascript - jquery在包含在它下面的脚本之后加载
- java - 创建一个类的独立对象