我有一个循环的函数,并且在该函数内部我调用了另一个函数(该函数应该更改“ newArray [x]”的值,但是它什么也没做)。
function UTF8() {
newArray = ["0011", "0001"]
newArray.forEach(x => {
binaryToHexadecimal(newArray[x]);
console.log(newArray[x])
});
console.log(newArray[0])
}
function binaryToHexadecimal(string) {
if (string === "0000") {
return string = "0";
}
else if (string ==="0001") {
return string = "1";
}
else if (string ==="0010") {
return string = "2";
}
else if (string ==="0011") {
return string = "3";
}
else if (string ==="0100") {
return string = "4";
}
}
UTF8();
答案 0 :(得分:2)
该函数正在设置 local 变量,它无法控制用于传递该值的变量。
只需从函数中返回所需的值即可。例如:
return "0";
然后在调用函数时,根据需要使用该值设置数组元素:
newArray[x] = binaryToHexadecimal(newArray[x]);
答案 1 :(得分:2)
使用map
代替forEach
。
在这里 return string = "0";
,您可以直接返回值。
function UTF8() {
newArray = ["0011", "0001"]
return newArray.map(x => {
return binaryToHexadecimal(x);
});
}
function binaryToHexadecimal(string) {
if (string === "0000") {
return "0";
}
else if (string ==="0001") {
return "1";
}
else if (string ==="0010") {
return "2";
}
else if (string === "0011") {
return "3";
}
else if (string ==="0100") {
return string = "4";
}
}
const result = UTF8();
console.log(result);