gpt4 book ai didi

javascript - 如何修复javascript数组写入问题?

转载 作者:行者123 更新时间:2023-11-30 19:22:46 25 4
gpt4 key购买 nike

当我尝试将函数结果写入具有指定索引的数组 tmp 时,整个数组变为一个数字。

我尝试单独运行函数 hex2dec,它按预期工作,我尝试向它写入一个常量,它也可以工作。但是当我用函数结果替换常量时,数组变成了 15。(取决于函数输入)

function clrData(data) {
data = data.split("");
tmp = [0, 0, 0];
tmp[0] = hex2dec(data[0] + data[1]);
tmp[1] = hex2dec(data[2] + data[3]);
tmp[2] = hex2dec(data[4] + data[5]);

return tmp;
}

clrData("FFFFFF") 应该产生 [255, 255, 255] 但结果是 15

function clrData(data) {
data = data.split("");
tmp = [0, 0, 0];
tmp[0] = hex2dec(data[0] + data[1]);
tmp[1] = hex2dec(data[2] + data[3]);
tmp[2] = hex2dec(data[4] + data[5]);

return tmp;
}

function plc(num) {
plc = 0;

while (num > 0) {
num /= 10;
plc++;
num = Math.floor(num);
}

return plc;
}

function hex2dec(num) {
num = num.toString();
numArr = num.split("");

num2 = 0;
for (i=0; i<numArr.length; i++) {
if (numArr[i] == "0" || numArr[i] == "1" || numArr[i] == "2" || numArr[i] == "3" || numArr[i] == "4" || numArr[i] == "5" || numArr[i] == "6" || numArr[i] == "7" || numArr[i] == "8" || numArr[i] == "9") {
tmp = Number(numArr[i]);
} else {
switch (numArr[i]) {
case "a":
case "A":
tmp = 10;
break;
case "b":
case "B":
tmp = 11;
break;
case "c":
case "C":
tmp = 12;
break;
case "d":
case "D":
tmp = 13;
break;
case "e":
case "E":
tmp = 14;
break;
case "f":
case "F":
tmp = 15;
break;
default:
tmp = 0;
}
}

num2 += Math.pow(16, (numArr.length-1) - i) * tmp;
}

return num2;
}
<input id="finput" value="FFFFFF"><button onClick="this.innerHTML=clrData(document.getElementById('finput').value)">Activate!</button>

最佳答案

您可以获得两个字符的组并映射整数值。

function clrData(data) {
return data.match(/../g).map(h => parseInt(h, 16));
}

console.log(clrData("FFFFFF"));

关于javascript - 如何修复javascript数组写入问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57276129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com