更改嵌套函数内部的变量值

时间:2020-10-26 18:37:51

标签: javascript function loops

我有一个循环的函数,并且在该函数内部我调用了另一个函数(该函数应该更改“ 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();

2 个答案:

答案 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);