如果我想在数字1-10之间循环,只要i小于或等于10,我就会对其进行循环。
当您要在十六进制数字周围循环时,该怎么做?例如,如果有人输入几乎所有的MAC地址,即12:34:56:78:90:XX,我如何显示X的所有可能性,即从00到FF?
我尝试提供诸如array = { "0", "1" .... "F"}
之类的值
然后每次循环时将我更改为其中之一,但这似乎效率很低。
有标准的方法吗?
答案 0 :(得分:1)
您可以使用.toString(16)
来获取十六进制格式的任何数字。
const result = []
for (let i = 0; i <= 0xFF; ++i)
result.push(i.toString(16))
console.log(result)
然后您可能想用padStart
将前几位补零。
const result = []
for (let i = 0; i <= 0xFF; ++i)
result.push(i.toString(16).padStart(2, '0'))
console.log(result)
注意,IE中不支持padStart
。
答案 1 :(得分:1)
您可以在JavaScript中使用十六进制数字,方法是在其前面加上0x
console.log(0xF)
它们将转换为十进制,但是使用该表示法会更容易,例如,如果您想循环到0xFF
。
您也可以在invoking the .toString
method and supplying a radix
let num = 12;
let otherNum = 255;
console.log(num.toString(16));
console.log(otherNum.toString(16));
您可以将两者结合起来以生成所有可能的值:
const allValues = [];
for(let i = 0; i <= 0xFF; i++) {
let num = i.toString(16).toUpperCase();
allValues.push(num);
}
console.log(allValues);